# This is the assembly code for transferring to control to OS S3 waking vector\r
# for X64 platform\r
#\r
-# Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
#\r
# This program and the accompanying materials are\r
# licensed and made available under the terms and conditions of the BSD License\r
ASM_PFX(AsmTransferControl):\r
# rcx S3WakingVector :DWORD\r
# rdx AcpiLowMemoryBase :DWORD\r
- lea _AsmTransferControl_al_0000, %eax \r
+ lea _AsmTransferControl_al_0000(%rip), %eax \r
movq $0x2800000000, %r8 \r
orq %r8, %rax\r
pushq %rax\r
shrd $20, %ecx, %ebx\r
andl $0x0f, %ecx \r
movw %cx, %bx\r
- movl %ebx, jmp_addr \r
+ movl %ebx, jmp_addr(%rip) \r
lret\r
_AsmTransferControl_al_0000:\r
.byte 0x0b8, 0x30, 0 # mov ax, 30h as selector\r
popq %rcx\r
popq %rax # restore all volatile registers\r
jnz L1\r
- jmpq *ASM_PFX(mOriginalHandler)\r
+ jmpq *ASM_PFX(mOriginalHandler)(%rip)\r
L1:\r
addq $0x08, %rsp # skip error code for PF\r
iretq\r