aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@college-de-france.fr>2019-05-26 17:03:19 +0200
committerXavier Leroy <xavier.leroy@college-de-france.fr>2019-05-26 18:09:22 +0200
commit546ca4827a033210d8cd94fe72721c7b0b364e11 (patch)
treeabdcfd10402003a192ae7cc0d9b5e00de59ba538
parentf047fcb7852ff58c0c62f10d41f91f3f88552780 (diff)
downloadcompcert-546ca4827a033210d8cd94fe72721c7b0b364e11.tar.gz
compcert-546ca4827a033210d8cd94fe72721c7b0b364e11.zip
ARM: Fix expansion of FP conditional move
The "vmov" instruction (Advanced SIMD) cannot be conditional. The "vmov.f64" instruction (VFPv2) can be conditional.
-rw-r--r--arm/TargetPrinter.ml4
1 files changed, 2 insertions, 2 deletions
diff --git a/arm/TargetPrinter.ml b/arm/TargetPrinter.ml
index 64448648..3a0814e1 100644
--- a/arm/TargetPrinter.ml
+++ b/arm/TargetPrinter.ml
@@ -445,9 +445,9 @@ struct
(neg_condition_name cond) ireg r1 shift_op ifnot
| Pfmovite(cond, r1, ifso, ifnot) ->
fprintf oc " ite %s\n" (condition_name cond);
- fprintf oc " vmov%s %a, %a\n"
+ fprintf oc " vmov%s.f64 %a, %a\n"
(condition_name cond) freg r1 freg ifso;
- fprintf oc " vmov%s %a, %a\n"
+ fprintf oc " vmov%s.f64 %a, %a\n"
(neg_condition_name cond) freg r1 freg ifnot
| Pbtbl(r, tbl) ->
if !Clflags.option_mthumb then begin