diff options
author | Xavier Leroy <xavier.leroy@college-de-france.fr> | 2022-05-25 15:32:17 +0200 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@college-de-france.fr> | 2022-05-30 17:38:07 +0200 |
commit | d357b5c52fb9ac70679fa8abd47094e89a6c3fa1 (patch) | |
tree | afc9759833de393a36b6156a1ff0a7cc1db65bec /aarch64/Conventions1.v | |
parent | 318fc06823eb577e9b386aeea57133e8c3938ecf (diff) | |
download | compcert-d357b5c52fb9ac70679fa8abd47094e89a6c3fa1.tar.gz compcert-d357b5c52fb9ac70679fa8abd47094e89a6c3fa1.zip |
AArch64: make register X29 callee-save
CompCert doesn't maintain a frame pointer in X29. However, it must treat
X29 as callee-save, so that CompCert-generated code can be called from code
that uses X29 as frame pointer.
This commit makes X29 callee-save. In places where X29 was used as a
temporary, X15 or X14 is used instead.
Diffstat (limited to 'aarch64/Conventions1.v')
-rw-r--r-- | aarch64/Conventions1.v | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/aarch64/Conventions1.v b/aarch64/Conventions1.v index f401458c..3e7159ac 100644 --- a/aarch64/Conventions1.v +++ b/aarch64/Conventions1.v @@ -38,7 +38,7 @@ Definition is_callee_save (r: mreg): bool := | R17 => false | R19 | R20 | R21 | R22 | R23 => true | R24 | R25 | R26 | R27 | R28 => true - | R29 => false + | R29 => true | F0 | F1 | F2 | F3 | F4 | F5 | F6 | F7 => false | F8 | F9 | F10 | F11 | F12 | F13 | F14 | F15 => true | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 => false @@ -48,7 +48,7 @@ Definition is_callee_save (r: mreg): bool := Definition int_caller_save_regs := R0 :: R1 :: R2 :: R3 :: R4 :: R5 :: R6 :: R7 :: R8 :: R9 :: R10 :: R11 :: R12 :: R13 :: R14 :: R15 - :: R17 :: R29 :: nil. + :: R17 :: nil. Definition float_caller_save_regs := F0 :: F1 :: F2 :: F3 :: F4 :: F5 :: F6 :: F7 @@ -57,7 +57,7 @@ Definition float_caller_save_regs := Definition int_callee_save_regs := R19 :: R20 :: R21 :: R22 :: R23 - :: R24 :: R25 :: R26 :: R27 :: R28 :: nil. + :: R24 :: R25 :: R26 :: R27 :: R28 :: R29 :: nil. Definition float_callee_save_regs := F8 :: F9 :: F10 :: F11 :: F12 :: F13 :: F14 :: F15 :: nil. |