aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/config/i386/i386.md10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 4e916bf..f3799ac3 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -18946,6 +18946,16 @@
operands[2] = gen_rtx_REG (GET_MODE (operands[0]), FLAGS_REG);
ix86_expand_clear (operands[1]);
})
+
+;; Reload dislikes loading constants directly into class_likely_spilled
+;; hard registers. Try to tidy things up here.
+(define_peephole2
+ [(set (match_operand:SWI 0 "general_reg_operand")
+ (match_operand:SWI 1 "x86_64_general_operand"))
+ (set (match_operand:SWI 2 "general_reg_operand")
+ (match_dup 0))]
+ "peep2_reg_dead_p (2, operands[0])"
+ [(set (match_dup 2) (match_dup 1))])
;; Misc patterns (?)