diff options
author | andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-07-12 02:57:30 +0000 |
---|---|---|
committer | andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-07-12 02:57:30 +0000 |
commit | 271d2c7f99612aae7b487cdad9c391373384e19b (patch) | |
tree | efcf3f5f59f52b54a2b32c51f14cfc83a2a93cd0 /EdkCompatibilityPkg/Compatibility/MpServicesOnFrameworkMpServicesThunk/X64/MpFuncs.S | |
parent | d12bed15b344fba00c1a4b511c5c2456109b8e99 (diff) | |
download | edk2-platforms-271d2c7f99612aae7b487cdad9c391373384e19b.tar.xz |
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
Diffstat (limited to 'EdkCompatibilityPkg/Compatibility/MpServicesOnFrameworkMpServicesThunk/X64/MpFuncs.S')
-rw-r--r-- | EdkCompatibilityPkg/Compatibility/MpServicesOnFrameworkMpServicesThunk/X64/MpFuncs.S | 30 |
1 files changed, 16 insertions, 14 deletions
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
|