aboutsummaryrefslogtreecommitdiff
path: root/gcc/explow.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/explow.c')
-rw-r--r--gcc/explow.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/explow.c b/gcc/explow.c
index 92f99ad..ab04951 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -730,7 +730,12 @@ force_reg (mode, x)
if (GET_CODE (x) == REG)
return x;
+
temp = gen_reg_rtx (mode);
+
+ if (! general_operand (x, mode))
+ x = force_operand (x, NULL_RTX);
+
insn = emit_move_insn (temp, x);
/* Let optimizers know that TEMP's value never changes