--- /dev/null
+#as:
+#objdump: -Dr
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+00000000.* <.L1>:
+[ ]+...
+[ ]+0:[ ]+R_LARCH_ADD32[ ]+.L3
+[ ]+0:[ ]+R_LARCH_SUB32[ ]+.L1
+[ ]+4:[ ]+R_LARCH_ADD32[ ]+.L3
+[ ]+4:[ ]+R_LARCH_SUB32[ ]+.L1
+
+0*00000008[ ]+<.L2>:
+[ ]+...
+[ ]+8:[ ]+R_LARCH_ADD64[ ]+.L3
+[ ]+8:[ ]+R_LARCH_SUB64[ ]+.L2
+[ ]+10:[ ]+R_LARCH_ADD64[ ]+.L3
+[ ]+10:[ ]+R_LARCH_SUB64[ ]+.L2
+
+Disassembly[ ]+of[ ]+section[ ]+sx:
+
+0*00000000[ ]+<.L3>:
+[ ]+0:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
+[ ]+4:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
+[ ]+8:[ ]+ffffffff[ ]+.word[ ]+0xffffffff
+
+0*0000000c[ ]+<.L4>:
+[ ]+...
+[ ]+c:[ ]+R_LARCH_ADD32[ ]+.L4
+[ ]+c:[ ]+R_LARCH_SUB32[ ]+.L5
+[ ]+10:[ ]+R_LARCH_ADD64[ ]+.L4
+[ ]+10:[ ]+R_LARCH_SUB64[ ]+.L5
+
+Disassembly[ ]+of[ ]+section[ ]+sy:
+
+0*00000000[ ]+<.L5>:
+[ ]+...
+[ ]+0:[ ]+R_LARCH_ADD32[ ]+.L1
+[ ]+0:[ ]+R_LARCH_SUB32[ ]+.L5
+[ ]+4:[ ]+R_LARCH_ADD32[ ]+.L3
+[ ]+4:[ ]+R_LARCH_SUB32[ ]+.L5
+[ ]+8:[ ]+R_LARCH_ADD64[ ]+.L1
+[ ]+8:[ ]+R_LARCH_SUB64[ ]+.L5
+[ ]+10:[ ]+R_LARCH_ADD64[ ]+.L3
+[ ]+10:[ ]+R_LARCH_SUB64[ ]+.L5
+
+Disassembly[ ]+of[ ]+section[ ]+sz:
+
+0*00000000[ ]+<sz>:
+[ ]+0:[ ]+00000000[ ]+.word[ ]+0x00000000
+[ ]+0:[ ]+R_LARCH_ADD32[ ]+.L1
+[ ]+0:[ ]+R_LARCH_SUB32[ ]+.L2
+[ ]+4:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
+[ ]+...
+[ ]+8:[ ]+R_LARCH_ADD32[ ]+.L3
+[ ]+8:[ ]+R_LARCH_SUB32[ ]+.L5
+[ ]+c:[ ]+R_LARCH_ADD64[ ]+.L1
+[ ]+c:[ ]+R_LARCH_SUB64[ ]+.L2
+[ ]+14:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
+[ ]+18:[ ]+ffffffff[ ]+.word[ ]+0xffffffff
+[ ]+...
+[ ]+1c:[ ]+R_LARCH_ADD64[ ]+.L3
+[ ]+1c:[ ]+R_LARCH_SUB64[ ]+.L5
--- /dev/null
+ .section .text
+.L1:
+ # add32+sub32
+ .4byte .L3-.L1
+ .4byte .L3-.L1
+.L2:
+ # add64+sub64
+ .8byte .L3-.L2
+ .8byte .L3-.L2
+
+ .section sx
+.L3:
+ # no relocation
+ .4byte .L3-.L4
+ .8byte .L3-.L4
+.L4:
+ # add32+sub32
+ .4byte .L4-.L5
+ # add64+sub64
+ .8byte .L4-.L5
+
+ .section sy
+.L5:
+ # add32+sub32
+ .4byte .L1-.L5
+ .4byte .L3-.L5
+ # add64+sub64
+ .8byte .L1-.L5
+ .8byte .L3-.L5
+
+ .section sz
+ # add32+sub32
+ .4byte .L1-.L2
+ # no relocation
+ .4byte .L3-.L4
+ # add32+sub32
+ .4byte .L3-.L5
+
+ # add64+sub64
+ .8byte .L1-.L2
+ # no relocation
+ .8byte .L3-.L4
+ # add64+sub64
+ .8byte .L3-.L5
+++ /dev/null
-#as: -mno-relax
-#objdump: -Dr
-
-.*:[ ]+file format .*
-
-
-Disassembly of section .text:
-
-00000000.* <.L1>:
-[ ]+...
-[ ]+0:[ ]+R_LARCH_32_PCREL[ ]+.L3
-[ ]+4:[ ]+R_LARCH_32_PCREL[ ]+.L3\+0x4
-
-0*00000008[ ]+<.L2>:
-[ ]+...
-[ ]+8:[ ]+R_LARCH_64_PCREL[ ]+.L3
-[ ]+10:[ ]+R_LARCH_64_PCREL[ ]+.L3\+0x8
-
-Disassembly[ ]+of[ ]+section[ ]+sx:
-
-0*00000000[ ]+<.L3>:
-[ ]+0:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
-[ ]+4:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
-[ ]+8:[ ]+ffffffff[ ]+.word[ ]+0xffffffff
-
-0*0000000c[ ]+<.L4>:
-[ ]+...
-[ ]+c:[ ]+R_LARCH_ADD32[ ]+.L4
-[ ]+c:[ ]+R_LARCH_SUB32[ ]+.L5
-[ ]+10:[ ]+R_LARCH_ADD64[ ]+.L4
-[ ]+10:[ ]+R_LARCH_SUB64[ ]+.L5
-
-Disassembly[ ]+of[ ]+section[ ]+sy:
-
-0*00000000[ ]+<.L5>:
-[ ]+...
-[ ]+0:[ ]+R_LARCH_32_PCREL[ ]+.L1
-[ ]+4:[ ]+R_LARCH_32_PCREL[ ]+.L2\+0x4
-[ ]+8:[ ]+R_LARCH_64_PCREL[ ]+.L1\+0x8
-[ ]+10:[ ]+R_LARCH_64_PCREL[ ]+.L2\+0x10
-
-Disassembly[ ]+of[ ]+section[ ]+sz:
-
-0*00000000[ ]+<sz>:
-[ ]+0:[ ]+fffffff8[ ]+.word[ ]+0xfffffff8
-[ ]+4:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
-[ ]+8:[ ]+00000000[ ]+.word[ ]+0x00000000
-[ ]+8:[ ]+R_LARCH_ADD32[ ]+.L2
-[ ]+8:[ ]+R_LARCH_SUB32[ ]+.L3
-[ ]+c:[ ]+fffffff8[ ]+.word[ ]+0xfffffff8
-[ ]+10:[ ]+ffffffff[ ]+.word[ ]+0xffffffff
-[ ]+14:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
-[ ]+18:[ ]+ffffffff[ ]+.word[ ]+0xffffffff
-[ ]+...
-[ ]+1c:[ ]+R_LARCH_ADD64[ ]+.L2
-[ ]+1c:[ ]+R_LARCH_SUB64[ ]+.L3
+++ /dev/null
- .section .text
-.L1:
- # 32_pcrel
- .4byte .L3-.L1
- .4byte .L3-.L1
-.L2:
- # 64_pcrel
- .8byte .L3-.L2
- .8byte .L3-.L2
-
- .section sx
-.L3:
- # no relocation
- .4byte .L3-.L4
- .8byte .L3-.L4
-.L4:
- # add32+sub32
- .4byte .L4-.L5
- # add64+sub64
- .8byte .L4-.L5
-
- .section sy
-.L5:
- # 32_pcrel
- .4byte .L1-.L5
- .4byte .L2-.L5
- # 64_pcrel
- .8byte .L1-.L5
- .8byte .L2-.L5
-
- .section sz
- # no relocation
- .4byte .L1-.L2
- .4byte .L3-.L4
- # add32+sub32
- .4byte .L2-.L3
-
- # no relocation
- .8byte .L1-.L2
- .8byte .L3-.L4
- # add64+sub64
- .8byte .L2-.L3
+++ /dev/null
-#as:
-#objdump: -Dr
-
-.*:[ ]+file format .*
-
-
-Disassembly of section .text:
-
-00000000.* <.L1>:
-[ ]+...
-[ ]+0:[ ]+R_LARCH_32_PCREL[ ]+.L3
-[ ]+4:[ ]+R_LARCH_ADD32[ ]+.L3
-[ ]+4:[ ]+R_LARCH_SUB32[ ]+.L1
-
-0*00000008[ ]+<.L2>:
-[ ]+...
-[ ]+8:[ ]+R_LARCH_64_PCREL[ ]+.L3
-[ ]+10:[ ]+R_LARCH_ADD64[ ]+.L3
-[ ]+10:[ ]+R_LARCH_SUB64[ ]+.L2
-
-Disassembly[ ]+of[ ]+section[ ]+sx:
-
-0*00000000[ ]+<.L3>:
-[ ]+0:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
-[ ]+4:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
-[ ]+8:[ ]+ffffffff[ ]+.word[ ]+0xffffffff
-
-0*0000000c[ ]+<.L4>:
-[ ]+...
-[ ]+c:[ ]+R_LARCH_ADD32[ ]+.L4
-[ ]+c:[ ]+R_LARCH_SUB32[ ]+.L5
-[ ]+10:[ ]+R_LARCH_ADD64[ ]+.L4
-[ ]+10:[ ]+R_LARCH_SUB64[ ]+.L5
-
-Disassembly[ ]+of[ ]+section[ ]+sy:
-
-0*00000000[ ]+<.L5>:
-[ ]+...
-[ ]+0:[ ]+R_LARCH_32_PCREL[ ]+.L1
-[ ]+4:[ ]+R_LARCH_32_PCREL[ ]+.L3\+0x4
-[ ]+8:[ ]+R_LARCH_64_PCREL[ ]+.L1\+0x8
-[ ]+10:[ ]+R_LARCH_64_PCREL[ ]+.L3\+0x10
-
-Disassembly[ ]+of[ ]+section[ ]+sz:
-
-0*00000000[ ]+<sz>:
-[ ]+0:[ ]+00000000[ ]+.word[ ]+0x00000000
-[ ]+0:[ ]+R_LARCH_ADD32[ ]+.L1
-[ ]+0:[ ]+R_LARCH_SUB32[ ]+.L2
-[ ]+4:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
-[ ]+...
-[ ]+8:[ ]+R_LARCH_ADD32[ ]+.L3
-[ ]+8:[ ]+R_LARCH_SUB32[ ]+.L5
-[ ]+c:[ ]+R_LARCH_ADD64[ ]+.L1
-[ ]+c:[ ]+R_LARCH_SUB64[ ]+.L2
-[ ]+14:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
-[ ]+18:[ ]+ffffffff[ ]+.word[ ]+0xffffffff
-[ ]+...
-[ ]+1c:[ ]+R_LARCH_ADD64[ ]+.L3
-[ ]+1c:[ ]+R_LARCH_SUB64[ ]+.L5
+++ /dev/null
- .section .text
-.L1:
- # 32_pcrel
- .4byte .L3-.L1
- # add32+sub32
- .4byte .L3-.L1
-.L2:
- # 64_pcrel
- .8byte .L3-.L2
- # add64+sub64
- .8byte .L3-.L2
-
- .section sx
-.L3:
- # no relocation
- .4byte .L3-.L4
- .8byte .L3-.L4
-.L4:
- # add32+sub32
- .4byte .L4-.L5
- # add64+sub64
- .8byte .L4-.L5
-
- .section sy
-.L5:
- # 32_pcrel
- .4byte .L1-.L5
- .4byte .L3-.L5
- # 64_pcrel
- .8byte .L1-.L5
- .8byte .L3-.L5
-
- .section sz
- # add32+sub32
- .4byte .L1-.L2
- # no relocation
- .4byte .L3-.L4
- # add32+sub32
- .4byte .L3-.L5
-
- #add64+sub64
- .8byte .L1-.L2
- # no relocation
- .8byte .L3-.L4
- #add64+sub64
- .8byte .L3-.L5
--- /dev/null
+#as: -mthin-add-sub -mno-relax
+#objdump: -Dr
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+00000000.* <.L1>:
+[ ]+...
+[ ]+0:[ ]+R_LARCH_32_PCREL[ ]+.L3
+[ ]+4:[ ]+R_LARCH_32_PCREL[ ]+.L3\+0x4
+[ ]+8:[ ]+R_LARCH_64_PCREL[ ]+.L3
+[ ]+10:[ ]+R_LARCH_64_PCREL[ ]+.L3\+0x8
+
+Disassembly[ ]+of[ ]+section[ ]+sx:
+
+0*00000000[ ]+<.L3>:
+[ ]+0:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
+[ ]+4:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
+[ ]+8:[ ]+ffffffff[ ]+.word[ ]+0xffffffff
+
+0*0000000c[ ]+<.L4>:
+[ ]+...
+[ ]+c:[ ]+R_LARCH_ADD32[ ]+.L4
+[ ]+c:[ ]+R_LARCH_SUB32[ ]+.L5
+[ ]+10:[ ]+R_LARCH_ADD64[ ]+.L4
+[ ]+10:[ ]+R_LARCH_SUB64[ ]+.L5
+
+Disassembly[ ]+of[ ]+section[ ]+sy:
+
+0*00000000[ ]+<.L5>:
+[ ]+...
+[ ]+0:[ ]+R_LARCH_32_PCREL[ ]+.L1
+[ ]+4:[ ]+R_LARCH_32_PCREL[ ]+.L3\+0x4
+[ ]+8:[ ]+R_LARCH_64_PCREL[ ]+.L1\+0x8
+[ ]+10:[ ]+R_LARCH_64_PCREL[ ]+.L3\+0x10
+
+Disassembly[ ]+of[ ]+section[ ]+sz:
+
+0*00000000[ ]+<sz>:
+[ ]+0:[ ]+fffffff8[ ]+.word[ ]+0xfffffff8
+[ ]+4:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
+[ ]+8:[ ]+00000000[ ]+.word[ ]+0x00000000
+[ ]+8:[ ]+R_LARCH_ADD32[ ]+.L3
+[ ]+8:[ ]+R_LARCH_SUB32[ ]+.L5
+[ ]+c:[ ]+fffffff8[ ]+.word[ ]+0xfffffff8
+[ ]+10:[ ]+ffffffff[ ]+.word[ ]+0xffffffff
+[ ]+14:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
+[ ]+18:[ ]+ffffffff[ ]+.word[ ]+0xffffffff
+[ ]+...
+[ ]+1c:[ ]+R_LARCH_ADD64[ ]+.L3
+[ ]+1c:[ ]+R_LARCH_SUB64[ ]+.L5
--- /dev/null
+ .section .text
+.L1:
+ # 32_pcrel
+ .4byte .L3-.L1
+ .4byte .L3-.L1
+.L2:
+ # 64_pcrel
+ .8byte .L3-.L2
+ .8byte .L3-.L2
+
+ .section sx
+.L3:
+ # no relocation
+ .4byte .L3-.L4
+ .8byte .L3-.L4
+.L4:
+ # add32+sub32
+ .4byte .L4-.L5
+ # add64+sub64
+ .8byte .L4-.L5
+
+ .section sy
+.L5:
+ # 32_pcrel
+ .4byte .L1-.L5
+ .4byte .L3-.L5
+ # 64_pcrel
+ .8byte .L1-.L5
+ .8byte .L3-.L5
+
+ .section sz
+ # no relocation
+ .4byte .L1-.L2
+ .4byte .L3-.L4
+ # add32+sub32
+ .4byte .L3-.L5
+
+ # no relocation
+ .8byte .L1-.L2
+ .8byte .L3-.L4
+ # add64+sub64
+ .8byte .L3-.L5
--- /dev/null
+#as: -mthin-add-sub
+#objdump: -Dr
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+00000000.* <.L1>:
+[ ]+...
+[ ]+0:[ ]+R_LARCH_32_PCREL[ ]+.L3
+[ ]+4:[ ]+R_LARCH_ADD32[ ]+.L3
+[ ]+4:[ ]+R_LARCH_SUB32[ ]+.L1
+
+0*00000008[ ]+<.L2>:
+[ ]+...
+[ ]+8:[ ]+R_LARCH_64_PCREL[ ]+.L3
+[ ]+10:[ ]+R_LARCH_ADD64[ ]+.L3
+[ ]+10:[ ]+R_LARCH_SUB64[ ]+.L2
+
+Disassembly[ ]+of[ ]+section[ ]+sx:
+
+0*00000000[ ]+<.L3>:
+[ ]+0:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
+[ ]+4:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
+[ ]+8:[ ]+ffffffff[ ]+.word[ ]+0xffffffff
+
+0*0000000c[ ]+<.L4>:
+[ ]+...
+[ ]+c:[ ]+R_LARCH_ADD32[ ]+.L4
+[ ]+c:[ ]+R_LARCH_SUB32[ ]+.L5
+[ ]+10:[ ]+R_LARCH_ADD64[ ]+.L4
+[ ]+10:[ ]+R_LARCH_SUB64[ ]+.L5
+
+Disassembly[ ]+of[ ]+section[ ]+sy:
+
+0*00000000[ ]+<.L5>:
+[ ]+...
+[ ]+0:[ ]+R_LARCH_32_PCREL[ ]+.L1
+[ ]+4:[ ]+R_LARCH_32_PCREL[ ]+.L3\+0x4
+[ ]+8:[ ]+R_LARCH_64_PCREL[ ]+.L1\+0x8
+[ ]+10:[ ]+R_LARCH_64_PCREL[ ]+.L3\+0x10
+
+Disassembly[ ]+of[ ]+section[ ]+sz:
+
+0*00000000[ ]+<sz>:
+[ ]+0:[ ]+00000000[ ]+.word[ ]+0x00000000
+[ ]+0:[ ]+R_LARCH_ADD32[ ]+.L1
+[ ]+0:[ ]+R_LARCH_SUB32[ ]+.L2
+[ ]+4:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
+[ ]+...
+[ ]+8:[ ]+R_LARCH_ADD32[ ]+.L3
+[ ]+8:[ ]+R_LARCH_SUB32[ ]+.L5
+[ ]+c:[ ]+R_LARCH_ADD64[ ]+.L1
+[ ]+c:[ ]+R_LARCH_SUB64[ ]+.L2
+[ ]+14:[ ]+fffffff4[ ]+.word[ ]+0xfffffff4
+[ ]+18:[ ]+ffffffff[ ]+.word[ ]+0xffffffff
+[ ]+...
+[ ]+1c:[ ]+R_LARCH_ADD64[ ]+.L3
+[ ]+1c:[ ]+R_LARCH_SUB64[ ]+.L5
--- /dev/null
+ .section .text
+.L1:
+ # 32_pcrel
+ .4byte .L3-.L1
+ # add32+sub32
+ .4byte .L3-.L1
+.L2:
+ # 64_pcrel
+ .8byte .L3-.L2
+ # add64+sub64
+ .8byte .L3-.L2
+
+ .section sx
+.L3:
+ # no relocation
+ .4byte .L3-.L4
+ .8byte .L3-.L4
+.L4:
+ # add32+sub32
+ .4byte .L4-.L5
+ # add64+sub64
+ .8byte .L4-.L5
+
+ .section sy
+.L5:
+ # 32_pcrel
+ .4byte .L1-.L5
+ .4byte .L3-.L5
+ # 64_pcrel
+ .8byte .L1-.L5
+ .8byte .L3-.L5
+
+ .section sz
+ # add32+sub32
+ .4byte .L1-.L2
+ # no relocation
+ .4byte .L3-.L4
+ # add32+sub32
+ .4byte .L3-.L5
+
+ #add64+sub64
+ .8byte .L1-.L2
+ # no relocation
+ .8byte .L3-.L4
+ #add64+sub64
+ .8byte .L3-.L5