diff options
author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2016-09-26 15:55:05 -0700 |
---|---|---|
committer | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2016-09-27 09:12:14 -0700 |
commit | eab26788156436a549610a299d2e297c22043e70 (patch) | |
tree | 6b62426d589a9f3c27a4217348a5ac8cab2b2c9b /MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S | |
parent | c4f637077eb4504aa0109aac9983dfe85e5b2afb (diff) | |
download | edk2-platforms-eab26788156436a549610a299d2e297c22043e70.tar.xz |
MdePkg/BaseMemoryLibOptDxe: replace deprecated uses of IT blocks
The ARM architecture version 8 deprecates all uses of the IT instruction
except cases where it is followed by a single narrow instruction. So
replace any occurrences with equivalent sequences that adhere to the
new rules.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Diffstat (limited to 'MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S')
-rw-r--r-- | MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S b/MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S index add04443b2..2d8f4d5b86 100644 --- a/MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S +++ b/MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S @@ -73,15 +73,17 @@ ASM_PFX(InternalMemZeroMem): cmp r4, #4 // between 4 and 15 bytes?
blt 4f
cmp r4, #8 // between 8 and 15 bytes?
- str r2, [lr, #-16] // overlapping store of 4 + (4 + 4) + 4 bytes
- itt gt
- strgt r3, [lr, #-12]
- strgt r2, [r1]
+ sub r4, lr, #16
+ str r2, [r4] // overlapping store of 4 + (4 + 4) + 4 bytes
+ it gt
+ strgt.n r3, [r4, #4]
+ it gt
+ strgt.n r2, [r1]
str r3, [r1, #4]
pop {r4, pc}
4: cmp r4, #2 // 2 or 3 bytes?
strb r2, [lr, #-16] // store 1 byte
it ge
- strhge r2, [r1, #6] // store 2 bytes
+ strhge.n r2, [r1, #6] // store 2 bytes
pop {r4, pc}
|