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>
|
2002-01-08 Graham Stott <grahams@redhat.com>
|
||||||
|
|
||||||
* c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
|
* 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. */
|
/* Prefix for internally generated assembler labels. */
|
||||||
#define LPREFIX ".L"
|
#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,
|
/* 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. */
|
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));
|
insn = emit_insn (gen_add2_insn (frame_pointer, frame_off));
|
||||||
RTX_FRAME_RELATED_P (insn) = 1;
|
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. */
|
/* Restore call saved fprs. */
|
||||||
|
@ -3153,7 +3153,10 @@
|
|||||||
[(set (match_operand:DI 0 "register_operand" "=d")
|
[(set (match_operand:DI 0 "register_operand" "=d")
|
||||||
(plus:DI (match_operand:DI 1 "general_operand" "g")
|
(plus:DI (match_operand:DI 1 "general_operand" "g")
|
||||||
(match_operand:DI 2 "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
|
(define_split
|
||||||
@ -3173,7 +3176,6 @@
|
|||||||
operands[1] = force_const_mem (DImode, operands[1]);
|
operands[1] = force_const_mem (DImode, operands[1]);
|
||||||
}")
|
}")
|
||||||
|
|
||||||
|
|
||||||
(define_split
|
(define_split
|
||||||
[(set (match_operand:DI 0 "register_operand" "")
|
[(set (match_operand:DI 0 "register_operand" "")
|
||||||
(plus:DI (match_operand:DI 1 "register_operand" "")
|
(plus:DI (match_operand:DI 1 "register_operand" "")
|
||||||
@ -3297,7 +3299,10 @@
|
|||||||
[(set (match_operand:SI 0 "register_operand" "=d")
|
[(set (match_operand:SI 0 "register_operand" "=d")
|
||||||
(plus:SI (match_operand:SI 1 "general_operand" "g")
|
(plus:SI (match_operand:SI 1 "general_operand" "g")
|
||||||
(match_operand:SI 2 "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
|
(define_split
|
||||||
@ -3333,7 +3338,7 @@
|
|||||||
&& !legitimate_reload_constant_p (operands[2]))
|
&& !legitimate_reload_constant_p (operands[2]))
|
||||||
operands[2] = force_const_mem (SImode, operands[2]);
|
operands[2] = force_const_mem (SImode, operands[2]);
|
||||||
}")
|
}")
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
; addhi3 instruction pattern(s).
|
; addhi3 instruction pattern(s).
|
||||||
|
Loading…
x
Reference in New Issue
Block a user