summaryrefslogtreecommitdiff
path: root/ArmPkg/Include/AsmMacroIoLib.h
diff options
context:
space:
mode:
authorOlivier Martin <olivier.martin@arm.com>2014-12-12 19:32:50 +0000
committeroliviermartin <oliviermartin@Edk2>2014-12-12 19:32:50 +0000
commitd5daaa836f46a3f8fe57da37cad7841d2a9c4aca (patch)
treebc1033b5e70a0cbbfc062e69cdb28712e960ddce /ArmPkg/Include/AsmMacroIoLib.h
parent85774874bcd13dba0ed8886ab5eb36b1ccdc44c1 (diff)
downloadedk2-platforms-d5daaa836f46a3f8fe57da37cad7841d2a9c4aca.tar.xz
ArmPkg/AsmMacroIoLib: Fixed the global variables initialization
The top of the stack always points to 'stack_base + stack_size'. But the stack pointer is decremented before writing to the stack. It means the top byte of the stack is actually 'stack_base + stack_size - 1'. The initialization should also decrement the stack pointer before zero'ing the memory (pre-indexed addressing). Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16518 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPkg/Include/AsmMacroIoLib.h')
-rw-r--r--ArmPkg/Include/AsmMacroIoLib.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/ArmPkg/Include/AsmMacroIoLib.h b/ArmPkg/Include/AsmMacroIoLib.h
index 408b2ca280..6904bdc9b0 100644
--- a/ArmPkg/Include/AsmMacroIoLib.h
+++ b/ArmPkg/Include/AsmMacroIoLib.h
@@ -149,7 +149,7 @@ _SetPrimaryStackEnd:
_InitializePrimaryStackLoop: ; \
cmp Tmp1, sp ; \
bls _InitializePrimaryStackEnd ; \
- str GlobalSize, [Tmp1], #-4 ; \
+ str GlobalSize, [Tmp1, #-4]! ; \
b _InitializePrimaryStackLoop ; \
_InitializePrimaryStackEnd:
@@ -228,7 +228,7 @@ _SetPrimaryStackEnd:
_InitializePrimaryStackLoop: ; \
cmp Tmp1, sp ; \
bls _InitializePrimaryStackEnd ; \
- str GlobalSize, [Tmp1], #-4 ; \
+ str GlobalSize, [Tmp1, #-4]! ; \
b _InitializePrimaryStackLoop ; \
_InitializePrimaryStackEnd: