;------------------------------------------------------------------------------ ;\r
-; Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+; Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>\r
; This program and the accompanying materials\r
; are licensed and made available under the terms and conditions of the BSD License\r
; which accompanies this distribution. The full text of the license may be found at\r
;\r
;-------------------------------------------------------------------------------\r
\r
-extern ASM_PFX(InitializeFloatingPointUnits)\r
-\r
%define VacantFlag 0x0\r
%define NotVacantFlag 0xff\r
\r
%define IdtrLocation LockLocation + 0x2A\r
%define BufferStartLocation LockLocation + 0x34\r
%define Cr3OffsetLocation LockLocation + 0x38\r
+%define InitializeFloatingPointUnitsAddress LockLocation + 0x3C\r
\r
;-------------------------------------------------------------------------------------\r
;RendezvousFunnelProc procedure follows. All APs execute their procedure. This\r
;\r
; Call assembly function to initialize FPU.\r
;\r
- mov rax, ASM_PFX(InitializeFloatingPointUnits)\r
+ mov rax, qword [esi + InitializeFloatingPointUnitsAddress]\r
sub rsp, 0x20\r
call rax\r
add rsp, 0x20\r
; comments here for definition of address map\r
global ASM_PFX(AsmGetAddressMap)\r
ASM_PFX(AsmGetAddressMap):\r
- mov rax, RendezvousFunnelProcStart\r
+ lea rax, [RendezvousFunnelProcStart]\r
mov qword [rcx], rax\r
mov qword [rcx+0x8], PMODE_ENTRY - RendezvousFunnelProcStart\r
mov qword [rcx+0x10], FLAT32_JUMP - RendezvousFunnelProcStart\r