re PR target/32335 (libgcc build failure, ICE in cselib_record_set, at cselib.c:1508)
PR target/32335 * config/avr/avr.c: Include dataflow header file. (expand_prologue): Adjust for prologue insn change. * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once inside a insn. From-SVN: r126121
This commit is contained in:
parent
f535826b35
commit
4e63b362a7
|
@ -1,3 +1,11 @@
|
|||
2007-06-29 Anatoly Sokolov <aesok@post.ru>
|
||||
|
||||
PR target/32335
|
||||
* config/avr/avr.c: Include dataflow header file.
|
||||
(expand_prologue): Adjust for prologue insn change.
|
||||
* config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
|
||||
inside a insn.
|
||||
|
||||
2007-06-29 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/32493
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
#include "tm_p.h"
|
||||
#include "target.h"
|
||||
#include "target-def.h"
|
||||
#include "df.h"
|
||||
|
||||
/* Maximal allowed offset for an address in the LD command */
|
||||
#define MAX_LD_OFFSET(MODE) (64 - (signed)GET_MODE_SIZE (MODE))
|
||||
|
@ -631,9 +632,13 @@ expand_prologue (void)
|
|||
}
|
||||
else if (minimize && (frame_pointer_needed || live_seq > 6))
|
||||
{
|
||||
insn = emit_move_insn (gen_rtx_REG (HImode, REG_X),
|
||||
gen_int_mode (size, HImode));
|
||||
RTX_FRAME_RELATED_P (insn) = 1;
|
||||
|
||||
insn =
|
||||
emit_insn (gen_call_prologue_saves (gen_int_mode (size, HImode),
|
||||
gen_int_mode (live_seq, HImode)));
|
||||
emit_insn (gen_call_prologue_saves (gen_int_mode (live_seq, HImode),
|
||||
gen_int_mode (size + live_seq, HImode)));
|
||||
RTX_FRAME_RELATED_P (insn) = 1;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -2706,20 +2706,16 @@
|
|||
;; Library prologue saves
|
||||
(define_insn "call_prologue_saves"
|
||||
[(unspec_volatile:HI [(const_int 0)] UNSPECV_PROLOGUE_SAVES)
|
||||
(set (reg:HI REG_SP) (minus:HI
|
||||
(reg:HI REG_SP)
|
||||
(match_operand:HI 0 "immediate_operand" "")))
|
||||
(match_operand:HI 0 "immediate_operand" "")
|
||||
(set (reg:HI REG_SP) (minus:HI
|
||||
(reg:HI REG_SP)
|
||||
(match_operand:HI 1 "immediate_operand" "")))
|
||||
(set (reg:HI REG_X) (match_dup 0))
|
||||
(use (reg:HI REG_X))
|
||||
(clobber (reg:HI REG_Z))]
|
||||
""
|
||||
"ldi r26,lo8(%0)
|
||||
ldi r27,hi8(%0)
|
||||
ldi r30,pm_lo8(1f)
|
||||
"ldi r30,pm_lo8(1f)
|
||||
ldi r31,pm_hi8(1f)
|
||||
%~jmp __prologue_saves__+((18 - %1) * 2)
|
||||
%~jmp __prologue_saves__+((18 - %0) * 2)
|
||||
1:"
|
||||
[(set_attr_alternative "length"
|
||||
[(if_then_else (eq_attr "mcu_mega" "yes")
|
||||
|
|
Loading…
Reference in New Issue