| Age | Commit message (Collapse) | Author | Files | Lines |
|
CompilerIntrinsicsLib is causing a #UD when used in IA32 mode.
This was tracked back to memcpy using size_t, which locally
defined in the file as __int64. When compiling for IA32 target,
this results in the memcpy interpreting 64 bits from the
calling convention instead of the 32 bits that were passed.
Update the local size_t defines to use UINTN. This matches
the functionality from CryptoPkg's Intrinsic functions.
Add CompilerIntrinsics to IA32/X64 component so it is complied
as part of CI.
Add size_t as ECC check exclusion to MdePkg.ci.yaml.
Signed-off-by: Aaron Pop <aaronpop@microsoft.com>
|
|
GCC may emit a call to __ashlti3 for 128-bit left shifts when
compiling code that uses unsigned __int128, such as OpenSSL Curve448
code in CryptoPkg. The LoongArch64 firmware build does not link against
libgcc, so provide the helper from CompilerIntrinsicsLib.
Implement __ashlti3 using the LoongArch64 ABI: the low and high 64-bit
halves are passed in $a0 and $a1, the shift count is passed in $a2, and
the result is returned in $a0 and $a1.
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Chao Li <lichao@loongson.cn>
Signed-off-by: zhubo <zhubo@loongson.cn>
|
|
PE targets do not support the ELF style .type, .size,
or .previous directives and have different name mangling,
so this commit updates MdePkg AArch64 code to support
PE targets.
PE targets also don't support the fixup_aarch64_ldr_pcrel_imm19
relocation type, which is created doing ldr <literal>. This
introduces a new set of macros, LDR_LIT nad LDR_LIT_TMP,
which will use the direct ldr for ELF targets and ADRP/LDR
for PE targets, because the ADRP/LDR version requires
4KB alignment, which is guaranteed on CLANGPDB.
Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
|
|
edk2 is dropping support for the ARM32 architecture. This
commit removes ARM32 code from CompilerIntrinsicsLib.
Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
|
|
As per the emailed RFC in
https://edk2.groups.io/g/devel/topic/rfc_move/107675828,
this patch moves CompilerIntrinsicsLib from ArmPkg to
MdePkg as this library provides compiler intrinsics, which
are industry standard.
This aligns with the goal of integrating ArmPkg into existing
packages: https://bugzilla.tianocore.org/show_bug.cgi?id=4121.
The newly placed CompilerIntrinsicsLib is added to MdeLibs.dsc.inc
as every DSC that builds ARM/AARCH64 needs this library added. The
old location is removed from every DSC in edk2 in this commit also
to not break bisectability with minimal hoop jumping.
Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
|