diff options
| author | danh-arm <dan.handley@arm.com> | 2016-12-08 12:20:21 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-12-08 12:20:21 +0000 |
| commit | 535f185a5c7ed3ef1958b6382320418093c5f6eb (patch) | |
| tree | 73d0286149b093d91c807f7880e7ee42d2a9bf2b /include | |
| parent | 7ffd088fe3267e56c42838e19222bde7321bd406 (diff) | |
| parent | 69d59e0ce9f713b0fd4929908ec1649d29f2cbd4 (diff) | |
Merge pull request #770 from yatharth-arm/yk/AArch32_fixes
AArch32: Miscellaneous fixes in the AArch32 code
Diffstat (limited to 'include')
| -rw-r--r-- | include/lib/aarch32/smcc_macros.S | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/include/lib/aarch32/smcc_macros.S b/include/lib/aarch32/smcc_macros.S index c80c3e47..4d329f5d 100644 --- a/include/lib/aarch32/smcc_macros.S +++ b/include/lib/aarch32/smcc_macros.S @@ -109,7 +109,13 @@ msr spsr_und, r9 msr sp_und, r10 msr lr_und, r11 - msr spsr, r12 + /* + * Use the `_fsxc` suffix explicitly to instruct the assembler + * to update all the 32 bits of SPSR. Else, by default, the + * assembler assumes `_fc` suffix which only modifies + * f->[31:24] and c->[7:0] bits of SPSR. + */ + msr spsr_fsxc, r12 /* Restore the rest of the general purpose registers */ ldm r0, {r0-r12} |
