[Bug target/58269] [4.9 Regression] ICE when building libobjc on x86_64-apple-darwin* after revision 201915
dominiq at lps dot ens.fr
gcc-bugzilla@gcc.gnu.org
Fri Sep 6 12:03:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58269
--- Comment #13 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
> Yes, confirmed that on x86_64-linux r202286 is the culprit.
See pr58139 comments #6 to #11.
I have successfully bootstrapped r202312 on x86_64-apple-darwin10 with the
following patch:
--- /opt/gcc/_clean/gcc/config/i386/i386.c 2013-08-28 18:59:22.000000000
+0200
+++ /opt/gcc/work/gcc/config/i386/i386.c 2013-09-06 10:46:46.000000000 +0200
@@ -4218,7 +4218,7 @@ ix86_conditional_register_usage (void)
/* If AVX512F is disabled, squash the registers. */
if (! TARGET_AVX512F)
- for (i = FIRST_EXT_REX_SSE_REG; i < LAST_EXT_REX_SSE_REG; i++)
+ for (i = FIRST_EXT_REX_SSE_REG; i <= LAST_EXT_REX_SSE_REG; i++)
fixed_regs[i] = call_used_regs[i] = 1, reg_names[i] = "";
}
@@ -5708,7 +5708,8 @@ ix86_function_arg_regno_p (int regno)
if (TARGET_MACHO)
{
- if (SSE_REGNO_P (regno) && TARGET_SSE)
+ if (SSE_REGNO_P (regno) && TARGET_SSE
+ && ! EXT_REX_SSE_REGNO_P (regno))
return true;
}
else
@@ -34466,7 +34467,7 @@ ix86_hard_regno_mode_ok (int regno, enum
/* OImode move is available only when AVX is enabled. */
return ((TARGET_AVX && mode == OImode)
- || VALID_AVX256_REG_MODE (mode)
+ || (TARGET_AVX && VALID_AVX256_REG_MODE (mode))
|| VALID_SSE_REG_MODE (mode)
|| VALID_SSE2_REG_MODE (mode)
|| VALID_MMX_REG_MODE (mode)
Note that the first hunk is r202318 and that without the second hunk, bootstrap
fails with
Comparing stages 2 and 3
warning: gcc/cc1-checksum.o differs
warning: gcc/cc1obj-checksum.o differs
warning: gcc/cc1objplus-checksum.o differs
warning: gcc/cc1plus-checksum.o differs
Bootstrap comparison failure!
libiberty/md5.o differs
libiberty/regex.o differs
More information about the Gcc-bugs
mailing list