linux.h (ASM_OUTPUT_LABELREF): Remove.
* config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove. * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR to insn adjusting stack/frame pointer. * config/s390/s390.md (reload_la_64, reload_la_31): Do not accept operands that cause the insn to be non-splittable. From-SVN: r48643
This commit is contained in:
parent
acd8ea2ae0
commit
bc1fa59ccd
@ -1,3 +1,11 @@
|
||||
2002-01-08 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
|
||||
* config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
|
||||
to insn adjusting stack/frame pointer.
|
||||
* config/s390/s390.md (reload_la_64, reload_la_31): Do not
|
||||
accept operands that cause the insn to be non-splittable.
|
||||
|
||||
2002-01-08 Graham Stott <grahams@redhat.com>
|
||||
|
||||
* c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
|
||||
|
@ -82,9 +82,6 @@ Boston, MA 02111-1307, USA. */
|
||||
/* Prefix for internally generated assembler labels. */
|
||||
#define LPREFIX ".L"
|
||||
|
||||
#define ASM_OUTPUT_LABELREF(FILE, NAME) \
|
||||
fprintf (FILE, "%s", NAME);
|
||||
|
||||
|
||||
/* This is how to output the definition of a user-level label named NAME,
|
||||
such as the label on a static function or variable NAME. */
|
||||
|
@ -3078,6 +3078,12 @@ s390_emit_epilogue ()
|
||||
|
||||
insn = emit_insn (gen_add2_insn (frame_pointer, frame_off));
|
||||
RTX_FRAME_RELATED_P (insn) = 1;
|
||||
REG_NOTES (insn) =
|
||||
gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR,
|
||||
gen_rtx_SET (VOIDmode, frame_pointer,
|
||||
gen_rtx_PLUS (Pmode, frame_pointer,
|
||||
GEN_INT (frame.frame_size - offset))),
|
||||
REG_NOTES (insn));
|
||||
}
|
||||
|
||||
/* Restore call saved fprs. */
|
||||
|
@ -3153,7 +3153,10 @@
|
||||
[(set (match_operand:DI 0 "register_operand" "=d")
|
||||
(plus:DI (match_operand:DI 1 "general_operand" "g")
|
||||
(match_operand:DI 2 "general_operand" "g")))]
|
||||
"TARGET_64BIT && reload_in_progress"
|
||||
"TARGET_64BIT && reload_in_progress
|
||||
&& !address_operand (gen_rtx_PLUS (DImode, operands[1], operands[2]), QImode)
|
||||
&& !rtx_equal_p (operands[0], operands[1])
|
||||
&& !rtx_equal_p (operands[0], operands[2])"
|
||||
"#")
|
||||
|
||||
(define_split
|
||||
@ -3173,7 +3176,6 @@
|
||||
operands[1] = force_const_mem (DImode, operands[1]);
|
||||
}")
|
||||
|
||||
|
||||
(define_split
|
||||
[(set (match_operand:DI 0 "register_operand" "")
|
||||
(plus:DI (match_operand:DI 1 "register_operand" "")
|
||||
@ -3297,7 +3299,10 @@
|
||||
[(set (match_operand:SI 0 "register_operand" "=d")
|
||||
(plus:SI (match_operand:SI 1 "general_operand" "g")
|
||||
(match_operand:SI 2 "general_operand" "g")))]
|
||||
"reload_in_progress"
|
||||
"reload_in_progress
|
||||
&& !address_operand (gen_rtx_PLUS (SImode, operands[1], operands[2]), QImode)
|
||||
&& !rtx_equal_p (operands[0], operands[1])
|
||||
&& !rtx_equal_p (operands[0], operands[2])"
|
||||
"#")
|
||||
|
||||
(define_split
|
||||
@ -3333,7 +3338,7 @@
|
||||
&& !legitimate_reload_constant_p (operands[2]))
|
||||
operands[2] = force_const_mem (SImode, operands[2]);
|
||||
}")
|
||||
|
||||
|
||||
|
||||
;
|
||||
; addhi3 instruction pattern(s).
|
||||
|
Loading…
Reference in New Issue
Block a user