diff options
author | changjiachen <changjiachen@stu.xupt.edu.cn> | 2024-01-04 14:06:09 +0800 |
---|---|---|
committer | liuzhensong <liuzhensong@loongson.cn> | 2024-01-11 14:37:26 +0800 |
commit | 2bee95b73c2d21495c0a19c5464b25265a20aeca (patch) | |
tree | fc6c6e8fa63f60caec2277b09c92824dd5832aad /ld | |
parent | 21455a847de4301fd6afaffaa2e168b0f58242d9 (diff) | |
download | gdb-2bee95b73c2d21495c0a19c5464b25265a20aeca.zip gdb-2bee95b73c2d21495c0a19c5464b25265a20aeca.tar.gz gdb-2bee95b73c2d21495c0a19c5464b25265a20aeca.tar.bz2 |
LoongArch: ld: Adjusted some code order in relax.exp.
ld/testsuite/ChangeLog:
* ld/testsuite/ld-loongarch-elf/relax.exp: Modify test.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/testsuite/ld-loongarch-elf/relax.exp | 298 |
1 files changed, 149 insertions, 149 deletions
diff --git a/ld/testsuite/ld-loongarch-elf/relax.exp b/ld/testsuite/ld-loongarch-elf/relax.exp index 548a0db..f8eebaa 100644 --- a/ld/testsuite/ld-loongarch-elf/relax.exp +++ b/ld/testsuite/ld-loongarch-elf/relax.exp @@ -33,90 +33,8 @@ if [istarget loongarch64-*-*] { "relax" \ ] \ ] - set tls_relax_builds [list \ - [list \ - "tls_relax_builds" \ - "" \ - "" \ - {relax-tls-le.s} \ - {} \ - "relax-tls-le" \ - ] \ - ] - set tls_no_relax_builds [list \ - [list \ - "tls_no_relax_builds" \ - "-Wl,--no-relax" \ - "" \ - {relax-tls-le.s} \ - {} \ - "no-relax-tls-le" \ - ] \ - ] - - set relax_bound_check [list \ - [list \ - "relax_bound_check" \ - "" \ - "" \ - {relax-bound-check-tls-le.s} \ - {} \ - "relax-bound-check-tls-le" \ - ] \ - ] - set no_relax_bound_check [list \ - [list \ - "no_relax_bound_check" \ - "-Wl,--no-relax" \ - "" \ - {relax-bound-check-tls-le.s} \ - {} \ - "no-relax-bound-check-tls-le" \ - ] \ - ] - - set old_tls_le [list \ - [list \ - "old_tls_le" \ - "" \ - "" \ - {old-tls-le.s} \ - {} \ - "old-tls-le" \ - ] \ - ] - - set relax_compatible [list \ - [list \ - "relax_compatible" \ - "" \ - "" \ - {tls-relax-compatible-check-new.s tls-relax-compatible-check-old.s} \ - {} \ - "realx-compatible" \ - ] \ - ] - - set no_relax_compatible [list \ - [list \ - "no_relax_compatible" \ - "-Wl,--no-relax" \ - "" \ - {tls-relax-compatible-check-new.s tls-relax-compatible-check-old.s} \ - {} \ - "no-realx-compatible" \ - ] \ - ] - run_cc_link_tests $pre_builds - run_cc_link_tests $tls_relax_builds - run_cc_link_tests $tls_no_relax_builds - run_cc_link_tests $relax_bound_check - run_cc_link_tests $no_relax_bound_check - run_cc_link_tests $old_tls_le - run_cc_link_tests $relax_compatible - run_cc_link_tests $no_relax_compatible if [file exist "tmpdir/relax"] { set objdump_output [run_host_cmd "objdump" "-d tmpdir/relax"] @@ -173,6 +91,155 @@ if [istarget loongarch64-*-*] { } } + run_ld_link_tests \ + [list \ + [list \ + "loongarch tls le relax .exe build" \ + "" "" \ + "" \ + {relax-tls-le.s} \ + {} \ + "relax-tls-le" \ + ] \ + ] + + if [file exist "tmpdir/relax-tls-le"] { + set objdump_output1 [run_host_cmd "objdump" "-d tmpdir/relax-tls-le"] + if { [ regexp ".addi.*st.*" $objdump_output1] } { + pass "loongarch relax success" + } { + fail "loongarch relax fail" + } + } + + run_ld_link_tests \ + [list \ + [list \ + "loongarch tls le no relax .exe build" \ + "--no-relax" "" \ + "" \ + {relax-tls-le.s} \ + {} \ + "no-relax-tls-le" \ + ] \ + ] + + if [file exist "tmpdir/no-relax-tls-le"] { + set objdump_output2 [run_host_cmd "objdump" "-d tmpdir/no-relax-tls-le"] + if { [ regexp ".*lu12i.*add.*addi.*st.*" $objdump_output2] } { + pass "loongarch no-relax success" + } { + fail "loongarch no-relax fail" + } + } + + run_ld_link_tests \ + [list \ + [list \ + "loongarch old tls le .exe build" \ + "" "" \ + "" \ + {old-tls-le.s} \ + {} \ + "old-tls-le" \ + ] \ + ] + + if [file exist "tmpdir/old-tls-le"] { + set objdump_output3 [run_host_cmd "objdump" "-d tmpdir/old-tls-le"] + if { [ regexp ".*lu12i.*ori.*add.*addi.*stptr.*" $objdump_output3] } { + pass "loongarch old tls le success" + } { + fail "loongarch old tls le fail" + } + } + + run_ld_link_tests \ + [list \ + [list \ + "loongarch tls le realx compatible .exe build" \ + "" "" \ + "" \ + {tls-relax-compatible-check-new.s tls-relax-compatible-check-old.s} \ + {} \ + "realx-compatible" \ + ] \ + ] + + if [file exist "tmpdir/realx-compatible"] { + set objdump_output4 [run_host_cmd "objdump" "-d tmpdir/realx-compatible"] + if { [ regexp ".addi.*st.*" $objdump_output4] && \ + [ regexp ".*lu12i.*ori.*add.*addi.*stptr.*" $objdump_output4] } { + pass "loongarch tls le relax compatible check success" + } { + fail "loongarch tls le relax compatible check fail" + } + } + + run_ld_link_tests \ + [list \ + [list \ + "loongarch tls le no realx compatible .exe build" \ + "--no-relax" "" \ + "" \ + {tls-relax-compatible-check-new.s tls-relax-compatible-check-old.s} \ + {} \ + "no-realx-compatible" \ + ] \ + ] + if [file exist "tmpdir/no-realx-compatible"] { + set objdump_output4 [run_host_cmd "objdump" "-d tmpdir/no-realx-compatible"] + if { [ regexp ".*lu12i.*add.*addi.*st.*" $objdump_output4] && \ + [ regexp ".*lu12i.*ori.*add.*addi.*stptr.*" $objdump_output4] } { + pass "loongarch tls le no-relax compatible check success" + } { + fail "loongarch tls le no-relax compatible check fail" + } + } + + run_ld_link_tests \ + [list \ + [list \ + "loongarch tls le realx bound-check .exe build" \ + "" "" \ + "" \ + {relax-bound-check-tls-le.s} \ + {} \ + "relax-bound-check-tls-le" \ + ] \ + ] + + if [file exist "tmpdir/relax-bound-check-tls-le"] { + set objdump_output5 [run_host_cmd "objdump" "-d tmpdir/relax-bound-check-tls-le"] + if { [ regexp ".*lu12i.*add.*addi.*st.*" $objdump_output5] && \ + [ regexp ".addi.*st.*" $objdump_output5] } { + pass "loongarch no-relax success" + } { + fail "loongarch no-relax fail" + } + } + + run_ld_link_tests \ + [list \ + [list \ + "loongarch tls le no realx bound-check .exe build" \ + "--no-relax" "" \ + "" \ + {relax-bound-check-tls-le.s} \ + {} \ + "no-relax-bound-check-tls-le" \ + ] \ + ] + + if [file exist "tmpdir/no-relax-bound-check-tls-le"] { + set objdump_output5 [run_host_cmd "objdump" "-d tmpdir/no-relax-bound-check-tls-le"] + if { [ regexp ".*addi.*st.*" $objdump_output5] } { + pass "loongarch no-relax success" + } { + fail "loongarch no-relax fail" + } + } + # If symbol in data segment, offset need to sub segment align to prevent # overflow. if [check_pie_support] { @@ -201,73 +268,6 @@ if [istarget loongarch64-*-*] { ] } - if [file exist "tmpdir/relax-tls-le"] { - set objdump_output1 [run_host_cmd "objdump" "-d tmpdir/relax-tls-le"] - if { [ regexp ".addi.*st.*" $objdump_output1] } { - pass "loongarch relax success" - } { - fail "loongarch relax fail" - } - } - if [file exist "tmpdir/no-relax-tls-le"] { - set objdump_output2 [run_host_cmd "objdump" "-d tmpdir/no-relax-tls-le"] - if { [ regexp ".*lu12i.*add.*addi.*st.*" $objdump_output2] } { - pass "loongarch no-relax success" - } { - fail "loongarch no-relax fail" - } - - } - if [file exist "tmpdir/old-tls-le"] { - set objdump_output3 [run_host_cmd "objdump" "-d tmpdir/old-tls-le"] - if { [ regexp ".*lu12i.*ori.*add.*addi.*stptr.*" $objdump_output3] } { - pass "loongarch old tls le success" - } { - fail "loongarch old tls le fail" - } - - } - - if [file exist "tmpdir/realx-compatible"] { - set objdump_output4 [run_host_cmd "objdump" "-d tmpdir/realx-compatible"] - if { [ regexp ".addi.*st.*" $objdump_output4] && \ - [ regexp ".*lu12i.*ori.*add.*addi.*stptr.*" $objdump_output4] } { - pass "loongarch tls le relax compatible check success" - } { - fail "loongarch tls le relax compatible check fail" - } - } - - if [file exist "tmpdir/no-realx-compatible"] { - set objdump_output4 [run_host_cmd "objdump" "-d tmpdir/realx-compatible"] - if { [ regexp ".*lu12i.*add.*addi.*st.*" $objdump_output4] && \ - [ regexp ".*lu12i.*ori.*add.*addi.*stptr.*" $objdump_output4] } { - pass "loongarch tls le no-relax compatible check success" - } { - fail "loongarch tls le no-relax compatible check fail" - } - } - - - if [file exist "tmpdir/relax-bound-check-tls-le"] { - set objdump_output5 [run_host_cmd "objdump" "-d tmpdir/relax-bound-check-tls-le"] - if { [ regexp ".*lu12i.*add.*addi.*st.*" $objdump_output5] && \ - [ regexp ".addi.*st.*" $objdump_output5] } { - pass "loongarch no-relax success" - } { - fail "loongarch no-relax fail" - } - - } - if [file exist "tmpdir/no-relax-bound-check-tls-le"] { - set objdump_output5 [run_host_cmd "objdump" "-d tmpdir/no-relax-bound-check-tls-le"] - if { [ regexp ".*addi.*st.*" $objdump_output5] } { - pass "loongarch no-relax success" - } { - fail "loongarch no-relax fail" - } - } - } if [check_shared_lib_support] { |