[Bug middle-end/47725] [x32] error: unable to find a register to spill in class DIREG
hjl.tools at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Feb 14 03:18:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47725
--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> 2011-02-14 03:04:29 UTC ---
I am testing this patch:
diff --git a/gcc/combine.c b/gcc/combine.c
index 5e1236b..78f3089 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -2138,6 +2138,12 @@ cant_combine_insn_p (rtx insn)
return asm_noperands (PATTERN (insn)) > 0;
src = SET_SRC (set);
dest = SET_DEST (set);
+ if (GET_CODE (src) == ZERO_EXTEND
+ || GET_CODE (src) == SIGN_EXTEND)
+ src = XEXP (src, 0);
+ if (GET_CODE (dest) == ZERO_EXTEND
+ || GET_CODE (dest) == SIGN_EXTEND)
+ dest = XEXP (dest, 0);
if (GET_CODE (src) == SUBREG)
src = SUBREG_REG (src);
if (GET_CODE (dest) == SUBREG)
More information about the Gcc-bugs
mailing list