diff options
author | Marcin KoĆcielnicki <koriakin@0x04.net> | 2015-12-13 02:53:09 +0100 |
---|---|---|
committer | Marcin KoĆcielnicki <koriakin@0x04.net> | 2016-02-15 11:59:25 +0100 |
commit | 2b63aca39c2b0abbb410f7a5a60124ac5abf7438 (patch) | |
tree | b36035e99ba8c26bc6f584bd79e98bd19252da68 /gold/testsuite/split_s390x_1_a2.s | |
parent | 0a0da55626b632a8b8beb6c7878b866861e5daee (diff) | |
download | binutils-2b63aca39c2b0abbb410f7a5a60124ac5abf7438.zip binutils-2b63aca39c2b0abbb410f7a5a60124ac5abf7438.tar.gz binutils-2b63aca39c2b0abbb410f7a5a60124ac5abf7438.tar.bz2 |
gold: Add s390 -fsplit-stack support.
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.
Diffstat (limited to 'gold/testsuite/split_s390x_1_a2.s')
-rw-r--r-- | gold/testsuite/split_s390x_1_a2.s | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gold/testsuite/split_s390x_1_a2.s b/gold/testsuite/split_s390x_1_a2.s new file mode 100644 index 0000000..a5c067b --- /dev/null +++ b/gold/testsuite/split_s390x_1_a2.s @@ -0,0 +1,28 @@ +# split_s390x_1_a2.s: s390x specific, permitted adjustment failure + + .text + + .global fn1 + .type fn1,@function +fn1: + .cfi_startproc + 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, __morestack + 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 + .section .note.GNU-no-split-stack,"",@progbits |