Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Michael Kinney 3b2928b469 UefiCpuPkg/MpInitLib: Fix X64 XCODE5/NASM compatibility issues
https://bugzilla.tianocore.org/show_bug.cgi?id=565

Fix NASM compatibility issues with XCODE5 tool chain.
The XCODE5 tool chain for X64 builds using PIE (Position
Independent Executable).  For most assembly sources using
PIE mode does not cause any issues.

However, if assembly code is copied to a different address
(such as AP startup code in the MpInitLib), then the
X64 assembly source must be implemented to be compatible
with PIE mode that uses RIP relative addressing.

The specific changes in this patch are:

* Use LEA instruction instead of MOV instruction to lookup
  the addresses of functions.

* The assembly function RendezvousFunnelProc() is copied
  below 1MB so it can be executed as part of the MpInitLib
  AP startup sequence.  RendezvousFunnelProc() calls the
  external function InitializeFloatingPointUnits().  The
  absolute address of InitializeFloatingPointUnits() is
  added to the MP_CPU_EXCHANGE_INFO structure that is passed
  to RendezvousFunnelProc().

Cc: Andrew Fish <afish@apple.com>
Cc: Jeff Fan <jeff.fan@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Andrew Fish <afish@apple.com>
2017-05-22 19:43:46 -07:00
AppPkg AppPkg/Applications/Python/PyMod-2.7.2: Replace non-ascii characters 2017-04-10 08:34:08 +08:00
ArmPkg ArmPkg: Add CNTHCTL_EL2 support functions 2017-05-22 15:19:34 +01:00
ArmPlatformPkg ArmPlatformPkg: Timer access for non-secure EL1/0 2017-05-22 15:20:04 +01:00
ArmVirtPkg ArmPlatformPkg,ArmVirtPkg: delete redundant PL031 functions 2017-05-10 14:28:37 +01:00
BaseTools BaseTools: Clean up tools_def.template for XCODE5 2017-05-19 15:05:33 -07:00
BeagleBoardPkg BeagleBoardPkg: add missing BootLogoLib resolution 2017-03-31 11:43:22 +01:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CorebootModulePkg CorebootPayloadPkg/CbSupportPei: Fix the memory map issue 2016-11-17 14:49:11 -08:00
CorebootPayloadPkg CorebootPayloadPkg: Use EfiEventGroupSignal from UefiLib 2017-01-20 15:55:41 +08:00
CryptoPkg CryptoPkg/BaseCryptLib: Add NULL pointer checks in DH and P7Verify 2017-05-22 08:57:48 +08:00
DuetPkg DuetPkg: Add SortLib/UefiBootManagerLib 2017-03-20 14:48:18 +08:00
EdkCompatibilityPkg EdkCompatibilityPkg: Fix some typos of "according" 2017-02-08 14:49:21 +08:00
EdkShellBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkShellPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EmbeddedPkg EmbeddedPkg: import EfiTimeBaseLib (as TimeBaseLib) 2017-05-10 14:28:14 +01:00
EmulatorPkg EmulatorPkg/FvbServicesRuntimeDxe: correct NumOfLba vararg type in EraseBlocks() 2017-05-18 23:38:45 +02:00
FatBinPkg FatBinPkg: New EnhancedFatDxe binaries for IA32, X64, EBC and IPF 2017-04-07 13:14:20 +08:00
FatPkg FatPkg: Refine casting expression result to bigger size 2017-03-06 14:33:21 +08:00
IntelFrameworkModulePkg IntelFrameworkModulePkg/IdeBusDxe: Fix undefined behavior in signed left shift 2017-04-13 08:59:24 +08:00
IntelFrameworkPkg IntelFrameworkPkg/UefiLib: Avoid mis-calculate of graphic console size 2017-04-14 13:16:12 +08:00
IntelFsp2Pkg IntelFsp2Pkg: Convert files to CRLF line ending 2017-04-06 15:42:56 +08:00
IntelFsp2WrapperPkg IntelFsp2WrapperPkg: Convert files to CRLF line ending 2017-04-06 15:43:08 +08:00
IntelFspPkg IntelFspPkg: Fix typos in comments 2016-10-24 09:26:28 +08:00
IntelFspWrapperPkg IntelFspWrapperPkg: Refine casting expression result to bigger size 2017-03-06 14:33:23 +08:00
IntelSiliconPkg IntelSiliconPkg: Fix format issues 2016-12-20 10:51:16 +08:00
MdeModulePkg MdeModulePkg/LogoDxe: Return error if HII Package not present 2017-05-22 16:30:11 -07:00
MdePkg MdePkg DxeServicesLib: Handle potential NULL FvHandle 2017-05-08 08:57:03 +08:00
NetworkPkg NetworkPkg/IScsiDxe: Switch IP4 configuration policy to Static before DHCP 2017-05-11 10:52:50 +08:00
Nt32Pkg Nt32Pkg/SnpNt32Dxe: Fix hang issue when multiple network interfaces existed 2017-05-09 14:32:16 +08:00
Omap35xxPkg ArmPkg: remove unused PcdArmUncachedMemoryMask PCD 2017-02-27 16:18:29 +00:00
OptionRomPkg OptionRomPkg: Fix calling convention issue for UndiRuntiumeDxe driver. 2017-04-24 10:10:45 +08:00
OvmfPkg OvmfPkg: Add XCODE5 statements to fix build break 2017-05-19 14:22:13 -07:00
PcAtChipsetPkg PcAtChipsetPkg/SerialIoLib: Remove negative value shift 2017-05-19 12:12:06 -07:00
PerformancePkg PerformancePkg Dp_App: Handle "/" separator in debug path for GCC build 2017-03-16 11:08:44 +08:00
QuarkPlatformPkg QuarkPlatformPkg/PlatformBootManagerLib: use new UefiShellFileGuid definition 2017-03-22 15:43:57 +00:00
QuarkSocPkg QuarkSocPkg: Remove use of IntelFrameworkModulePkg legacy libs 2016-12-02 15:59:19 +00:00
SecurityPkg SecurityPkg: Add TCG Spec info to TCG related modules 2017-05-11 16:20:05 +08:00
ShellBinPkg ShellBinPkg: Ia32/X64 Shell binary update. 2017-05-12 14:51:10 +08:00
ShellPkg ShellPkg/memmap: Dump memory map information for all memory types 2017-05-12 10:50:51 +08:00
SignedCapsulePkg SignedCapsulePkg: Convert files to CRLF line ending 2017-04-06 15:43:14 +08:00
SourceLevelDebugPkg PeCoffGetEntryPointLib: Fix spelling issue 2017-04-26 08:58:18 +08:00
StdLib StdLib: GCC 6 build fixes 2017-04-28 17:06:59 +01:00
StdLibPrivateInternalFiles StdLib: Clarify and improve comments. 2016-01-06 00:31:42 +00:00
UefiCpuPkg UefiCpuPkg/MpInitLib: Fix X64 XCODE5/NASM compatibility issues 2017-05-22 19:43:46 -07:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
Vlv2DeviceRefCodePkg Vlv2DeviceRefCodePkg: Fixed thermal issue. 2017-02-08 15:32:39 +08:00
Vlv2TbltDevicePkg Vlv2TbltDevicePkg: Fix build failure by adding UefiBootManagerLib 2017-04-01 13:20:11 +08:00
.gitignore edk2: Add .DS_Store to .gitignore for macOS 2017-05-19 15:14:34 -07:00
BuildNotes2.txt BaseTools: Updated BuildNotes URLs 2016-03-25 09:46:44 +08:00
Edk2Setup.bat Edk2Setup.bat: Fix build errors from VS tools PREFIX ENV missing 2016-11-05 09:10:58 +08:00
Maintainers.txt Maintainers.txt: Update maintainers for MdeModulePkg 2017-05-04 08:32:38 +08:00
edksetup.bat edksetup.bat: make sure BASE_TOOLS_PATH be set correctly 2016-10-26 13:45:45 +08:00
edksetup.sh edksetup.sh, BaseTools/BuildEnv: add --reconfig support 2016-10-24 13:53:16 +01:00