summaryrefslogtreecommitdiffstats
path: root/ArmPkg/Drivers
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2015-12-15 15:01:42 +0000
committerabiesheuvel <abiesheuvel@Edk2>2015-12-15 15:01:42 +0000
commit1a0db79125bad94aaaa97e1146100594a1471382 (patch)
tree40a7a97a140fee5d734c8b13593f3f45a03c6204 /ArmPkg/Drivers
parent660aaec3118b0763ee4fcd83b936bf15ffcf23a9 (diff)
downloadedk2-1a0db79125bad94aaaa97e1146100594a1471382.tar.gz
edk2-1a0db79125bad94aaaa97e1146100594a1471382.tar.bz2
edk2-1a0db79125bad94aaaa97e1146100594a1471382.zip
ArmPkg: use unified asm syntax for CLANG
The CLANG assembler does not support the legacy, non-unified assembler syntax, i.e., it does not support the reordering of the condition suffixes with the increment/decrement before/after or byte/word suffixes, and it does not recognize the 'empty descending' (ED) suffix at all. So move to the unified syntax, and replace 'empty descending' with 'decrement after' or 'increment before' as appropriate. 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@19280 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPkg/Drivers')
-rw-r--r--ArmPkg/Drivers/CpuDxe/Arm/ExceptionSupport.S9
1 files changed, 5 insertions, 4 deletions
diff --git a/ArmPkg/Drivers/CpuDxe/Arm/ExceptionSupport.S b/ArmPkg/Drivers/CpuDxe/Arm/ExceptionSupport.S
index 3433b99cd4..673b931297 100644
--- a/ArmPkg/Drivers/CpuDxe/Arm/ExceptionSupport.S
+++ b/ArmPkg/Drivers/CpuDxe/Arm/ExceptionSupport.S
@@ -60,6 +60,7 @@ GCC_ASM_EXPORT(AsmCommonExceptionEntry)
GCC_ASM_EXPORT(CommonCExceptionHandler)
.text
+.syntax unified
#if !defined(__APPLE__)
.fpu neon @ makes vpush/vpop assemble
#endif
@@ -223,9 +224,9 @@ ASM_PFX(AsmCommonExceptionEntry):
and R3, R1, #0x1f @ Check CPSR to see if User or System Mode
cmp R3, #0x1f @ if ((CPSR == 0x10) || (CPSR == 0x1f))
cmpne R3, #0x10 @
- stmeqed R2, {lr}^ @ save unbanked lr
+ stmdaeq R2, {lr}^ @ save unbanked lr
@ else
- stmneed R2, {lr} @ save SVC lr
+ stmdane R2, {lr} @ save SVC lr
ldr R5, [SP, #0x58] @ PC is the LR pushed by srsfd
@@ -290,9 +291,9 @@ CommonCExceptionHandler (
and R1, R1, #0x1f @ Check to see if User or System Mode
cmp R1, #0x1f @ if ((CPSR == 0x10) || (CPSR == 0x1f))
cmpne R1, #0x10 @
- ldmeqed R2, {lr}^ @ restore unbanked lr
+ ldmibeq R2, {lr}^ @ restore unbanked lr
@ else
- ldmneed R3, {lr} @ restore SVC lr, via ldmfd SP!, {LR}
+ ldmibne R3, {lr} @ restore SVC lr, via ldmfd SP!, {LR}
ldmfd SP!,{R0-R12} @ Restore general purpose registers
@ Exception handler can not change SP