ArmPkg/ArmV7Lib: add CLANG alternative for FPEXC access

The open coded access to co-processor #10 to set FPEXC is not supported
by the CLANG assembler, but the architecturally correct VMSR instruction
is not supported by older binutils. So keep the former unless __clang__
is defined.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19282 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Ard Biesheuvel 2015-12-15 15:02:07 +00:00 committed by abiesheuvel
parent 19d9bf7725
commit 6d2449c1f5
1 changed files with 4 additions and 0 deletions

View File

@ -298,7 +298,11 @@ ASM_PFX(ArmEnableVFP):
isb isb
# Set EN bit in FPEXC. The Advanced SIMD and VFP extensions are enabled and operate normally. # Set EN bit in FPEXC. The Advanced SIMD and VFP extensions are enabled and operate normally.
mov r0, #0x40000000 mov r0, #0x40000000
#ifndef __clang__
mcr p10,#0x7,r0,c8,c0,#0 mcr p10,#0x7,r0,c8,c0,#0
#else
vmsr fpexc, r0
#endif
bx lr bx lr
ASM_PFX(ArmCallWFI): ASM_PFX(ArmCallWFI):