diff options
author | xavier.leroy <xavier.leroy@college-de-france.fr> | 2019-08-23 08:18:27 +0200 |
---|---|---|
committer | xavier.leroy <xavier.leroy@college-de-france.fr> | 2019-08-23 08:18:27 +0200 |
commit | 25a39ae6be7a4b65e01d9bb6b1fd94688aa674b0 (patch) | |
tree | 17509690913855a505c58f32c4637b53769ea2a7 /aarch64/Asmexpand.ml | |
parent | 7d5db993033ce049776fa290ae1ebc6051dea0f3 (diff) | |
download | compcert-25a39ae6be7a4b65e01d9bb6b1fd94688aa674b0.tar.gz compcert-25a39ae6be7a4b65e01d9bb6b1fd94688aa674b0.zip |
Offset out of range for ldp/stp instructions
These instructions are generated by __builtin_memcpy.
Diffstat (limited to 'aarch64/Asmexpand.ml')
-rw-r--r-- | aarch64/Asmexpand.ml | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/aarch64/Asmexpand.ml b/aarch64/Asmexpand.ml index 71bd0042..ab155e9c 100644 --- a/aarch64/Asmexpand.ml +++ b/aarch64/Asmexpand.ml @@ -146,7 +146,9 @@ let expand_annot_val kind txt targ args res = Temporary registers used: x15 x16 x17 x29 x30. *) let offset_in_range ofs = - let ofs = Z.to_int64 ofs in 0L <= ofs && ofs < 0x1000L + (* The 512 upper bound comes from ldp/stp. Single-register load/store + instructions support bigger offsets. *) + let ofs = Z.to_int64 ofs in 0L <= ofs && ofs < 512L let memcpy_small_arg sz arg tmp = match arg with |