2b63aca39c
gold/ChangeLog: * s390.cc (Target_s390::match_view_u): New helper method. (Target_s390::do_is_call_to_non_split): New method. (Target_s390::ss_code_st_r14): New const. (Target_s390::ss_code_l_r14): New const. (Target_s390::ss_code_bras_8): New const. (Target_s390::ss_code_l_basr): New const. (Target_s390::ss_code_a_basr): New const. (Target_s390::ss_code_ear): New const. (Target_s390::ss_code_c): New const. (Target_s390::ss_code_larl): New const. (Target_s390::ss_code_brasl): New const. (Target_s390::ss_code_jg): New const. (Target_s390::ss_code_jgl): New const. (Target_s390::ss_match_mcount): New helper method. (Target_s390::ss_match_l): New helper method. (Target_s390::ss_match_ahi): New helper method. (Target_s390::ss_match_alfi): New helper method. (Target_s390::ss_match_cr): New helper method. (Target_s390::do_calls_non_split): New method. * testsuite/Makefile.am: Added new tests. * testsuite/split_s390.sh: New test. * testsuite/split_s390_1_a1.s: New test. * testsuite/split_s390_1_a2.s: New test. * testsuite/split_s390_1_n1.s: New test. * testsuite/split_s390_1_n2.s: New test. * testsuite/split_s390_1_z1.s: New test. * testsuite/split_s390_1_z2.s: New test. * testsuite/split_s390_1_z3.s: New test. * testsuite/split_s390_1_z4.s: New test. * testsuite/split_s390_2_ns.s: New test. * testsuite/split_s390_2_s.s: New test. * testsuite/split_s390x_1_a1.s: New test. * testsuite/split_s390x_1_a2.s: New test. * testsuite/split_s390x_1_n1.s: New test. * testsuite/split_s390x_1_n2.s: New test. * testsuite/split_s390x_1_z1.s: New test. * testsuite/split_s390x_1_z2.s: New test. * testsuite/split_s390x_1_z3.s: New test. * testsuite/split_s390x_1_z4.s: New test. * testsuite/split_s390x_2_ns.s: New test. * testsuite/split_s390x_2_s.s: New test.
44 lines
785 B
ArmAsm
44 lines
785 B
ArmAsm
# split_s390x_1_z3.s: s390x specific test case for -fsplit-stack -
|
|
# conditional call, ahi.
|
|
|
|
.text
|
|
|
|
.global fn1
|
|
.type fn1,@function
|
|
fn1:
|
|
.cfi_startproc
|
|
ear %r1, %a0
|
|
sllg %r1, %r1, 32
|
|
ear %r1, %a1
|
|
lg %r1, 0x38(%r1)
|
|
aghi %r1, 0x1000
|
|
cgr %r15, %r1
|
|
larl %r1, .L1
|
|
jgl __morestack
|
|
.section .rodata
|
|
.align 8
|
|
.L1:
|
|
.quad 0x1000
|
|
.quad 0
|
|
.quad .L2-.L1
|
|
.previous
|
|
.L2:
|
|
stmg %r13, %r15, 0x68(%r15)
|
|
.cfi_offset %r13, -0x38
|
|
.cfi_offset %r14, -0x30
|
|
.cfi_offset %r15, -0x28
|
|
aghi %r15, -0xa0
|
|
.cfi_adjust_cfa_offset 0xa0
|
|
brasl %r14, fn2
|
|
lmg %r13, %r15, 0x108(%r15)
|
|
.cfi_restore %r13
|
|
.cfi_restore %r14
|
|
.cfi_restore %r15
|
|
.cfi_adjust_cfa_offset -0xa0
|
|
br %r14
|
|
.cfi_endproc
|
|
.size fn1,. - fn1
|
|
|
|
.section .note.GNU-stack,"",@progbits
|
|
.section .note.GNU-split-stack,"",@progbits
|