From 031264128aa4d4fb489b687abcd980332da03e90 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Mon, 18 Jul 2011 19:51:33 +0200 Subject: [PATCH] re PR target/47744 ([x32] ICE: in reload_cse_simplify_operands, at postreload.c:403) PR target/47744 * config/i386/i386.c (ix86_decompose_address): Allow only subregs of DImode hard registers in PLUS address chains. From-SVN: r176413 --- gcc/ChangeLog | 22 ++++++++++++---------- gcc/config/i386/i386.c | 7 ++++++- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index faed53d917d..6597ecd6746 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-07-18 Uros Bizjak + + PR target/47744 + * config/i386/i386.c (ix86_decompose_address): Allow only subregs + of DImode hard registers in PLUS address chains. + 2011-07-18 Rainer Orth PR bootstrap/49769 @@ -281,15 +287,14 @@ (READONLY_DATA_SECTION_ASM_OP): Remove. (TARGET_ASM_NAMED_SECTION): Move from here... * config/avr/avr.c: ...to here. - (avr_asm_init_sections): Set unnamed callback of - readonly_data_section. + (avr_asm_init_sections): Set unnamed callback of readonly_data_section. (avr_asm_named_section): Make static. 2011-07-13 Rainer Orth PR bootstrap/49739 - * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtp - rec80.o crtfastmath.o for Linux/x86. + * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o + and crtfastmath.o for Linux/x86. 2011-07-14 Bernd Schmidt @@ -319,8 +324,7 @@ estimate_insn_tick, estimate_shadow_tick): New functions. (prune_ready_list): New arg shadows_only_p. All callers changed. If true, remove everything that isn't SHADOW_P. Look up delay - pairs and estimate ticks to avoid scheduling the first insn too - early. + pairs and estimate ticks to avoid scheduling the first insn too early. (verify_shadows): New function. (schedule_block): Add machinery to enable backtracking. (sched_init): Take sched_no_dce into account when setting @@ -385,8 +389,7 @@ 2011-07-13 Rainer Orth PR target/49541 - * config/sol2.h (LIB_SPEC): Simplify. - Move LIB_THREAD_LDFLAGS_SPEC ... + * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ... (LINK_SPEC): ... here. 2011-07-13 Bernd Schmidt @@ -448,8 +451,7 @@ 2011-07-13 H.J. Lu - * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode - != Pmode. + * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode. * config/i386/i386.md (*addsi_1_zext): Renamed to ... (addsi_1_zext): This. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 3187f856609..c2688997f4b 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -11149,8 +11149,13 @@ ix86_decompose_address (rtx addr, struct ix86_address *out) return 0; break; - case REG: case SUBREG: + /* Allow only subregs of DImode hard regs in PLUS chains. */ + if (!register_no_elim_operand (SUBREG_REG (op), DImode)) + return 0; + /* FALLTHRU */ + + case REG: if (!base) base = op; else if (!index) -- 2.30.2