From 271d2c7f99612aae7b487cdad9c391373384e19b Mon Sep 17 00:00:00 2001 From: andrewfish Date: Tue, 12 Jul 2011 02:57:30 +0000 Subject: EdkCompatabilityPkg: Fix build issues with X64 clang Removed passing VA_LIST and some assembly language compatability issues. Did not fix ReportStatusCode passing VA_LIST (non-ANSI C Code), and some of the assembler was not not ported and int 3 was inserted, as it likely is not needed. signed-off-by: andrewfish reviewed-by: lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12006 6f19259b-4bc3-4df7-8a09-765794883524 --- .../X64/MpFuncs.S | 30 ++++++++++++---------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'EdkCompatibilityPkg/Compatibility/MpServicesOnFrameworkMpServicesThunk') diff --git a/EdkCompatibilityPkg/Compatibility/MpServicesOnFrameworkMpServicesThunk/X64/MpFuncs.S b/EdkCompatibilityPkg/Compatibility/MpServicesOnFrameworkMpServicesThunk/X64/MpFuncs.S index 5ec90bdaac..6ea0f3e690 100644 --- a/EdkCompatibilityPkg/Compatibility/MpServicesOnFrameworkMpServicesThunk/X64/MpFuncs.S +++ b/EdkCompatibilityPkg/Compatibility/MpServicesOnFrameworkMpServicesThunk/X64/MpFuncs.S @@ -13,18 +13,18 @@ #------------------------------------------------------------------------------ -.equ VacantFlag, 0x0 -.equ NotVacantFlag, 0xff - -.equ LockLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart -.equ StackStartAddressLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x08 -.equ StackSizeLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x10 -.equ CProcedureLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x18 -.equ GdtrLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x20 -.equ IdtrLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x2A -.equ BufferStartLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x34 -.equ Cr3OffsetLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x38 -.equ ProcessorNumberLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x38 +.set VacantFlag, 0x0 +.set NotVacantFlag, 0xff + +.set LockLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart +.set StackStartAddressLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x08 +.set StackSizeLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x10 +.set CProcedureLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x18 +.set GdtrLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x20 +.set IdtrLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x2A +.set BufferStartLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x34 +.set Cr3OffsetLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x38 +.set ProcessorNumberLocation, RendezvousFunnelProcEnd - RendezvousFunnelProcStart + 0x38 #------------------------------------------------------------------------------------- @@ -186,7 +186,9 @@ RendezvousFunnelProcEnd: # comments here for definition of address map ASM_GLOBAL ASM_PFX(AsmGetAddressMap) ASM_PFX(AsmGetAddressMap): - +#ifdef __APPLE__ + int $3 +#else movq $RendezvousFunnelProcStart, %rax movq %rax, (%rcx) movq $(ProtectedModeStart - RendezvousFunnelProcStart), 0x08(%rcx) @@ -194,5 +196,5 @@ ASM_PFX(AsmGetAddressMap): movq $(LongModeStart - RendezvousFunnelProcStart), 0x18(%rcx) movq $(LONG_JUMP - RendezvousFunnelProcStart), 0x20(%rcx) movq $(RendezvousFunnelProcEnd - RendezvousFunnelProcStart), 0x28(%rcx) - +#endif ret -- cgit v1.2.3