aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2018-09-06 23:39:47 +0200
committerUros Bizjak <uros@gcc.gnu.org>2018-09-06 23:39:47 +0200
commitb3892454f7a813871f8877c48fb6ec114ce22cdb (patch)
tree7a1752c36916b6f300b337e02d7bf11fbc2fb303 /gcc
parentbd46d32c51acb745fe230994f7b5a2ac4db0ce8c (diff)
downloadgcc-b3892454f7a813871f8877c48fb6ec114ce22cdb.zip
gcc-b3892454f7a813871f8877c48fb6ec114ce22cdb.tar.gz
gcc-b3892454f7a813871f8877c48fb6ec114ce22cdb.tar.bz2
reg-stack.c (get_true_reg): Reorder to fallthru to FLOAT case.
* reg-stack.c (get_true_reg) <case FLOAT_TRUNCATE>: Reorder to fallthru to FLOAT case. From-SVN: r264151
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reg-stack.c17
2 files changed, 14 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5ab342e..9657eee 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-09-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * reg-stack.c (get_true_reg) <case FLOAT_TRUNCATE>: Reorder
+ to fallthru to FLOAT case.
+
2018-09-06 Will Schmidt <will_schmidt@vnet.ibm.com>
PR target/86731
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 519ea6d..0f1b6d5 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -413,8 +413,9 @@ get_true_reg (rtx *pat)
/* Eliminate FP subregister accesses in favor of the
actual FP register in use. */
{
- rtx subreg;
- if (STACK_REG_P (subreg = SUBREG_REG (*pat)))
+ rtx subreg = SUBREG_REG (*pat);
+
+ if (STACK_REG_P (subreg))
{
int regno_off = subreg_regno_offset (REGNO (subreg),
GET_MODE (subreg),
@@ -427,6 +428,12 @@ get_true_reg (rtx *pat)
pat = &XEXP (*pat, 0);
break;
}
+
+ case FLOAT_TRUNCATE:
+ if (!flag_unsafe_math_optimizations)
+ return pat;
+ /* FALLTHRU */
+
case FLOAT:
case FIX:
case FLOAT_EXTEND:
@@ -439,12 +446,6 @@ get_true_reg (rtx *pat)
pat = &XVECEXP (*pat, 0, 0);
return pat;
- case FLOAT_TRUNCATE:
- if (!flag_unsafe_math_optimizations)
- return pat;
- pat = &XEXP (*pat, 0);
- break;
-
default:
return pat;
}