re PR target/6496 (Sparc backend clobbers call-return stack of UltraSparc)

PR target/6496
	* config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
	after call peepholes for UltraSPARC.
	(call + jump 64-bit peepholes): Remove.

From-SVN: r52863
This commit is contained in:
Jakub Jelinek 2002-04-28 22:37:05 +02:00 committed by Jakub Jelinek
parent 80103f96d0
commit 7a03f82f06
2 changed files with 11 additions and 23 deletions

View File

@ -1,3 +1,10 @@
2002-04-28 Jakub Jelinek <jakub@redhat.com>
PR target/6496
* config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
after call peepholes for UltraSPARC.
(call + jump 64-bit peepholes): Remove.
2002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
PR c/6497

View File

@ -9362,7 +9362,8 @@
(clobber (reg:SI 15))])
(set (pc) (label_ref (match_operand 3 "" "")))]
"short_branch (INSN_UID (insn), INSN_UID (operands[3]))
&& (USING_SJLJ_EXCEPTIONS || ! can_throw_internal (ins1))"
&& (USING_SJLJ_EXCEPTIONS || ! can_throw_internal (ins1))
&& sparc_cpu != PROCESSOR_ULTRASPARC"
"call\\t%a1, %2\\n\\tadd\\t%%o7, (%l3-.-4), %%o7")
(define_peephole
@ -9371,28 +9372,8 @@
(clobber (reg:SI 15))])
(set (pc) (label_ref (match_operand 2 "" "")))]
"short_branch (INSN_UID (insn), INSN_UID (operands[2]))
&& (USING_SJLJ_EXCEPTIONS || ! can_throw_internal (ins1))"
"call\\t%a0, %1\\n\\tadd\\t%%o7, (%l2-.-4), %%o7")
(define_peephole
[(parallel [(set (match_operand 0 "" "")
(call (mem:SI (match_operand:DI 1 "call_operand_address" "ps"))
(match_operand 2 "" "")))
(clobber (reg:DI 15))])
(set (pc) (label_ref (match_operand 3 "" "")))]
"TARGET_ARCH64
&& short_branch (INSN_UID (insn), INSN_UID (operands[3]))
&& (USING_SJLJ_EXCEPTIONS || ! can_throw_internal (ins1))"
"call\\t%a1, %2\\n\\tadd\\t%%o7, (%l3-.-4), %%o7")
(define_peephole
[(parallel [(call (mem:SI (match_operand:DI 0 "call_operand_address" "ps"))
(match_operand 1 "" ""))
(clobber (reg:DI 15))])
(set (pc) (label_ref (match_operand 2 "" "")))]
"TARGET_ARCH64
&& short_branch (INSN_UID (insn), INSN_UID (operands[2]))
&& (USING_SJLJ_EXCEPTIONS || ! can_throw_internal (ins1))"
&& (USING_SJLJ_EXCEPTIONS || ! can_throw_internal (ins1))
&& sparc_cpu != PROCESSOR_ULTRASPARC"
"call\\t%a0, %1\\n\\tadd\\t%%o7, (%l2-.-4), %%o7")
(define_insn "prefetch"