From 546ca4827a033210d8cd94fe72721c7b0b364e11 Mon Sep 17 00:00:00 2001 From: Xavier Leroy Date: Sun, 26 May 2019 17:03:19 +0200 Subject: ARM: Fix expansion of FP conditional move The "vmov" instruction (Advanced SIMD) cannot be conditional. The "vmov.f64" instruction (VFPv2) can be conditional. --- arm/TargetPrinter.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'arm') 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 -- cgit