aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2003-03-09 17:07:45 +0000
committerRichard Earnshaw <rearnsha@gcc.gnu.org>2003-03-09 17:07:45 +0000
commit17136dde5fd3f37e14e8fd0756145e1ce1b393a8 (patch)
tree41814dd5c784fbf4c539e50ca67232338e3293c0 /gcc
parent9edf6a4c0f6a3f5c61c9b3f39571059ae3268548 (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/arm/arm.md8
-rw-r--r--gcc/config/arm/cirrus.md4
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"