diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2003-03-09 17:07:45 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2003-03-09 17:07:45 +0000 |
commit | 17136dde5fd3f37e14e8fd0756145e1ce1b393a8 (patch) | |
tree | 41814dd5c784fbf4c539e50ca67232338e3293c0 | |
parent | 9edf6a4c0f6a3f5c61c9b3f39571059ae3268548 (diff) | |
download | gcc-17136dde5fd3f37e14e8fd0756145e1ce1b393a8.zip gcc-17136dde5fd3f37e14e8fd0756145e1ce1b393a8.tar.gz gcc-17136dde5fd3f37e14e8fd0756145e1ce1b393a8.tar.bz2 |
* arm.md (fix_truncsfsi2, fix_truncdfsi2, arm_fix_truncsfsi2)
(arm_fix_truncdfsi2): Add missing fix in floating point mode before
conversion to integer.
* cirrus.md (cirrus_truncsfsi2, cirrus_truncdfsi2): Likewise.
From-SVN: r64037
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/arm/arm.md | 8 | ||||
-rw-r--r-- | gcc/config/arm/cirrus.md | 4 |
3 files changed, 13 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c2545b7..6b70af9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2003-03-09 Richard Earnshaw <rearnsha@arm.com> + + * arm.md (fix_truncsfsi2, fix_truncdfsi2, arm_fix_truncsfsi2) + (arm_fix_truncdfsi2): Add missing fix in floating point mode before + conversion to integer. + * cirrus.md (cirrus_truncsfsi2, cirrus_truncdfsi2): Likewise. + 2003-03-09 Roger Sayle <roger@eyesopen.com> * builtins.def: Fix typo and improve grammar. diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 4d3df96..9811bf8 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -3117,7 +3117,7 @@ (define_expand "fix_truncsfsi2" [(set (match_operand:SI 0 "s_register_operand" "") - (fix:SI (match_operand:SF 1 "s_register_operand" "")))] + (fix:SI (fix:SF (match_operand:SF 1 "s_register_operand" ""))))] "TARGET_ARM && TARGET_ANY_HARD_FLOAT" " if (TARGET_CIRRUS) @@ -3133,7 +3133,7 @@ (define_insn "*arm_fix_truncsfsi2" [(set (match_operand:SI 0 "s_register_operand" "=r") - (fix:SI (match_operand:SF 1 "s_register_operand" "f")))] + (fix:SI (fix:SF (match_operand:SF 1 "s_register_operand" "f"))))] "TARGET_ARM && TARGET_HARD_FLOAT" "fix%?z\\t%0, %1" [(set_attr "type" "f_2_r") @@ -3142,7 +3142,7 @@ (define_expand "fix_truncdfsi2" [(set (match_operand:SI 0 "s_register_operand" "") - (fix:SI (match_operand:DF 1 "s_register_operand" "")))] + (fix:SI (fix:DF (match_operand:DF 1 "s_register_operand" ""))))] "TARGET_ARM && TARGET_ANY_HARD_FLOAT" " if (TARGET_CIRRUS) @@ -3156,7 +3156,7 @@ (define_insn "*arm_fix_truncdfsi2" [(set (match_operand:SI 0 "s_register_operand" "=r") - (fix:SI (match_operand:DF 1 "s_register_operand" "f")))] + (fix:SI (fix:DF (match_operand:DF 1 "s_register_operand" "f"))))] "TARGET_ARM && TARGET_HARD_FLOAT" "fix%?z\\t%0, %1" [(set_attr "type" "f_2_r") diff --git a/gcc/config/arm/cirrus.md b/gcc/config/arm/cirrus.md index 328a0eb..0da8469 100644 --- a/gcc/config/arm/cirrus.md +++ b/gcc/config/arm/cirrus.md @@ -334,7 +334,7 @@ (define_insn "cirrus_truncsfsi2" [(set (match_operand:SI 0 "s_register_operand" "=r") - (fix:SI (match_operand:SF 1 "cirrus_fp_register" "v"))) + (fix:SI (fix:SF (match_operand:SF 1 "cirrus_fp_register" "v")))) (clobber (match_scratch:DF 2 "=v"))] "TARGET_ARM && TARGET_CIRRUS" "cftruncs32%?\\t%Y2, %V1\;cfmvr64l%?\\t%0, %Z2" @@ -344,7 +344,7 @@ (define_insn "cirrus_truncdfsi2" [(set (match_operand:SI 0 "s_register_operand" "=r") - (fix:SI (match_operand:DF 1 "cirrus_fp_register" "v"))) + (fix:SI (fix:DF (match_operand:DF 1 "cirrus_fp_register" "v")))) (clobber (match_scratch:DF 2 "=v"))] "TARGET_ARM && TARGET_CIRRUS" "cftruncd32%?\\t%Y2, %V1\;cfmvr64l%?\\t%0, %Z2" |