LoongArch: ld: Adjusted some code order in relax.exp.
authorchangjiachen <changjiachen@stu.xupt.edu.cn>
Thu, 4 Jan 2024 06:06:09 +0000 (14:06 +0800)
committerliuzhensong <liuzhensong@loongson.cn>
Thu, 11 Jan 2024 06:37:26 +0000 (14:37 +0800)
ld/testsuite/ChangeLog:

* ld/testsuite/ld-loongarch-elf/relax.exp: Modify test.

ld/testsuite/ld-loongarch-elf/relax.exp

index 548a0db..f8eebaa 100644 (file)
@@ -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] {