diff options
author | Xavier Leroy <xavier.leroy@college-de-france.fr> | 2019-05-26 17:03:19 +0200 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@college-de-france.fr> | 2019-05-26 18:09:22 +0200 |
commit | 546ca4827a033210d8cd94fe72721c7b0b364e11 (patch) | |
tree | abdcfd10402003a192ae7cc0d9b5e00de59ba538 /arm/TargetPrinter.ml | |
parent | f047fcb7852ff58c0c62f10d41f91f3f88552780 (diff) | |
download | compcert-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.
Diffstat (limited to 'arm/TargetPrinter.ml')
-rw-r--r-- | arm/TargetPrinter.ml | 4 |
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 |