+2002-09-23 Daniel Jacobowitz <drow@mvista.com>
+
+ Merge from mainline:
+ 2002-09-19 Jakub Jelinek <jakub@redhat.com>
+ * gas/i386/tlspic.s: Add tests.
+ * gas/i386/tlspic.d: Regenerated.
+ * gas/i386/tlsnopic.s: Add tests.
+ * gas/i386/tlsnopic.d: Regenerated.
+
+ 2002-09-16 Chris Demetriou <cgd@broadcom.com>
+ * gas/mips/mips-abi32-pic2.s: New file.
+ * gas/mips/mips-abi32-pic2.d: New file.
+ * gas/mips/mips.exp: Run new test.
+
+ 2002-08-20 Richard Sandiford <rsandifo@redhat.com>
+ * gas/mips/rol.s: Add rotate by zero tests.
+ * gas/mips/rol.d: Update accordingly.
+ * gas/mips/rol64.d: Expect rotates by zero to use dsrl.
+
+ 2002-08-13 Stephen Clarke <stephen.clarke@superh.com>
+ * gas/sh/sh64/datal32-3.d: Formatting change to match the current
+ output of objdump.
+
+ 2002-08-12 Richard Sandiford <rsandifo@redhat.com>
+ * gas/mips/elf-consthilo.[sd]: New test.
+ * gas/mips/mips.exp: Run it.
+
+ 2002-08-06 Alan Modra <amodra@bigpond.net.au>
+ * gas/ppc/altivec_xcoff64.d: Adjust for aix5 target.
+ * gas/ppc/booke_xcoff64.d: Likewise. Also fix relocs.
+
+ 2002-08-03 Jakub Jelinek <jakub@redhat.com>
+ * testsuite/gas/i386/gotpc.s: New.
+ * testsuite/gas/i386/gotpc.d: New.
+ * testsuite/gas/i386/i386.exp: Add gotpc test.
+
2002-08-26 Alan Modra <amodra@bigpond.net.au>
* gas/m68k/all.exp: xfail non-ELF targets on pcrel test.
&& ![istarget *-*-linux*oldld*])
} then {
run_dump_test "relax"
+ run_dump_test "gotpc"
run_dump_test "tlsd"
run_dump_test "tlspic"
run_dump_test "tlsnopic"
40: 90 [ ]*nop
41: 8d 91 00 00 00 00 lea 0x0\(%ecx\),%edx
[ ]+43: R_386_TLS_LE var2
- 47: c3 [ ]*ret[ ]*
+ 47: a1 00 00 00 00 [ ]*mov 0x0,%eax
+[ ]+48: R_386_TLS_IE foo
+ 4c: 65 8b 00 [ ]*mov %gs:\(%eax\),%eax
+ 4f: 65 a1 00 00 00 00 [ ]*mov %gs:0x0,%eax
+ 55: 03 05 00 00 00 00 [ ]*add 0x0,%eax
+ 57: R_386_TLS_IE foo
+ 5b: c3 [ ]*ret[ ]*
.globl fn
.type fn,@function
fn:
- /* Main binary, no PIC */
+ /* Main binary, no PIC. */
1: movl 1b, %edx
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
- /* foo can be anywhere in startup TLS */
+ /* foo can be anywhere in startup TLS. */
movl %gs:0, %eax
subl foo@GOTTPOFF(%edx), %eax
- /* %eax now contains &foo */
+ /* %eax now contains &foo. */
- /* bar only in the main program */
+ /* bar only in the main program. */
movl %gs:0, %eax
subl $bar@TPOFF, %eax
- /* %eax now contains &bar */
+ /* %eax now contains &bar. */
- /* baz only in the main program */
+ /* baz only in the main program. */
movl %gs:0, %ecx
- /* Arbitrary instructions in between */
+ /* Arbitrary instructions in between. */
nop
subl $baz@TPOFF, %ecx
- /* %ecx now contains &baz */
+ /* %ecx now contains &baz. */
- /* var and var2 only in the main program */
+ /* var and var2 only in the main program. */
movl %gs:0, %ecx
- /* Arbitrary instructions in between */
+ /* Arbitrary instructions in between. */
nop
nop
leal var@NTPOFF(%ecx), %eax
- /* Arbitrary instructions in between */
+ /* Arbitrary instructions in between. */
nop
leal var2@NTPOFF(%ecx), %edx
+ /* foo can be anywhere in startup TLS. */
+ movl foo@INDNTPOFF, %eax
+ movl %gs:(%eax), %eax
+ /* %eax now contains foo. */
+
+ movl %gs:0, %eax
+ addl foo@INDNTPOFF, %eax
+ /* %eax now contains &foo. */
+
ret
17: 8d 76 00 [ ]*lea 0x0\(%esi\),%esi
1a: 2b 83 00 00 00 00 [ ]*sub 0x0\(%ebx\),%eax
[ ]+1c: R_386_TLS_IE_32 foo
- 20: 8b 5d fc [ ]*mov 0xfffffffc\(%ebp\),%ebx
- 23: c9 [ ]*leave[ ]*
- 24: c3 [ ]*ret[ ]*
+ 20: 8b 83 00 00 00 00 [ ]*mov 0x0\(%ebx\),%eax
+[ ]+22: R_386_TLS_GOTIE foo
+ 26: 8d 76 00 [ ]*lea 0x0\(%esi\),%esi
+ 29: 65 8b 00 [ ]*mov %gs:\(%eax\),%eax
+ 2c: 65 8b 0d 00 00 00 00 [ ]*mov %gs:0x0,%ecx
+ 33: 03 8b 00 00 00 00 [ ]*add 0x0\(%ebx\),%ecx
+[ ]+35: R_386_TLS_GOTIE foo
+ 39: 8b 5d fc [ ]*mov 0xfffffffc\(%ebp\),%ebx
+ 3c: c9 [ ]*leave[ ]*
+ 3d: c3 [ ]*ret[ ]*
/* foo can be anywhere in the startup TLS */
movl %gs:0, %eax
- /* Arbitrary instructions in between */
+ /* Arbitrary instructions in between. */
leal 0(%esi, 1), %esi
subl foo@GOTTPOFF(%ebx), %eax
/* %eax now contains &foo */
+ /* Now the GNU sequence. */
+ movl foo@GOTNTPOFF(%ebx), %eax
+
+ /* Arbitrary instructions in between. */
+ leal 0(%esi, 1), %esi
+
+ movl %gs:(%eax), %eax
+ /* %eax now contains foo */
+
+ movl %gs:0, %ecx
+ addl foo@GOTNTPOFF(%ebx), %ecx
+
movl -4(%ebp), %ebx
leave
ret
run_dump_test "mips-abi32"
run_dump_test "mips-abi32-pic"
+ run_dump_test "mips-abi32-pic2"
run_dump_test "elf${el}-rel"
if {[istarget mips64*-*-*] || [istarget mipsisa32*-*-*]
run_dump_test "${tmips}mips${el}16-e"
run_dump_test "${tmips}mips${el}16-f"
}
+ run_dump_test "elf-consthilo"
}
}
0+002c <[^>]*> sll at,a1,0x1
0+0030 <[^>]*> srl a0,a1,0x1f
0+0034 <[^>]*> or a0,a0,at
-0+0038 <[^>]*> negu at,a1
-0+003c <[^>]*> sllv at,a0,at
-0+0040 <[^>]*> srlv a0,a0,a1
-0+0044 <[^>]*> or a0,a0,at
-0+0048 <[^>]*> negu at,a2
-0+004c <[^>]*> sllv at,a1,at
-0+0050 <[^>]*> srlv a0,a1,a2
-0+0054 <[^>]*> or a0,a0,at
-0+0058 <[^>]*> srl at,a0,0x1
-0+005c <[^>]*> sll a0,a0,0x1f
-0+0060 <[^>]*> or a0,a0,at
-0+0064 <[^>]*> srl at,a1,0x1
-0+0068 <[^>]*> sll a0,a1,0x1f
-0+006c <[^>]*> or a0,a0,at
+0+0038 <[^>]*> srl a0,a1,0x0
+0+003c <[^>]*> negu at,a1
+0+0040 <[^>]*> sllv at,a0,at
+0+0044 <[^>]*> srlv a0,a0,a1
+0+0048 <[^>]*> or a0,a0,at
+0+004c <[^>]*> negu at,a2
+0+0050 <[^>]*> sllv at,a1,at
+0+0054 <[^>]*> srlv a0,a1,a2
+0+0058 <[^>]*> or a0,a0,at
+0+005c <[^>]*> srl at,a0,0x1
+0+0060 <[^>]*> sll a0,a0,0x1f
+0+0064 <[^>]*> or a0,a0,at
+0+0068 <[^>]*> srl at,a1,0x1
+0+006c <[^>]*> sll a0,a1,0x1f
+0+0070 <[^>]*> or a0,a0,at
+0+0074 <[^>]*> srl a0,a1,0x0
+ ...
rol $4,$5,$6
rol $4,1
rol $4,$5,1
+ rol $4,$5,0
ror $4,$5
ror $4,$5,$6
ror $4,1
ror $4,$5,1
+ ror $4,$5,0
+ .space 8
0+0020 <[^>]*> dsll at,a0,0x1
0+0024 <[^>]*> dsrl32 a0,a0,0x1f
0+0028 <[^>]*> or a0,a0,at
-0+002c <[^>]*> dsll at,a1,0x1
-0+0030 <[^>]*> dsrl32 a0,a1,0x1f
-0+0034 <[^>]*> or a0,a0,at
-0+0038 <[^>]*> dsll at,a1,0x1f
-0+003c <[^>]*> dsrl32 a0,a1,0x1
-0+0040 <[^>]*> or a0,a0,at
-0+0044 <[^>]*> dsll32 at,a1,0x0
-0+0048 <[^>]*> dsrl32 a0,a1,0x0
-0+004c <[^>]*> or a0,a0,at
-0+0050 <[^>]*> dsll32 at,a1,0x1
-0+0054 <[^>]*> dsrl a0,a1,0x1f
-0+0058 <[^>]*> or a0,a0,at
-0+005c <[^>]*> dsll32 at,a1,0x1f
-0+0060 <[^>]*> dsrl a0,a1,0x1
-0+0064 <[^>]*> or a0,a0,at
-0+0068 <[^>]*> dnegu at,a1
-0+006c <[^>]*> dsllv at,a0,at
-0+0070 <[^>]*> dsrlv a0,a0,a1
-0+0074 <[^>]*> or a0,a0,at
-0+0078 <[^>]*> dnegu at,a2
-0+007c <[^>]*> dsllv at,a1,at
-0+0080 <[^>]*> dsrlv a0,a1,a2
-0+0084 <[^>]*> or a0,a0,at
-0+0088 <[^>]*> dsrl at,a0,0x1
-0+008c <[^>]*> dsll32 a0,a0,0x1f
-0+0090 <[^>]*> or a0,a0,at
-0+0094 <[^>]*> dsrl at,a1,0x1
-0+0098 <[^>]*> dsll32 a0,a1,0x1f
-0+009c <[^>]*> or a0,a0,at
-0+00a0 <[^>]*> dsrl at,a1,0x1f
-0+00a4 <[^>]*> dsll32 a0,a1,0x1
+0+002c <[^>]*> dsrl a0,a1,0x0
+0+0030 <[^>]*> dsll at,a1,0x1
+0+0034 <[^>]*> dsrl32 a0,a1,0x1f
+0+0038 <[^>]*> or a0,a0,at
+0+003c <[^>]*> dsll at,a1,0x1f
+0+0040 <[^>]*> dsrl32 a0,a1,0x1
+0+0044 <[^>]*> or a0,a0,at
+0+0048 <[^>]*> dsll32 at,a1,0x0
+0+004c <[^>]*> dsrl32 a0,a1,0x0
+0+0050 <[^>]*> or a0,a0,at
+0+0054 <[^>]*> dsll32 at,a1,0x1
+0+0058 <[^>]*> dsrl a0,a1,0x1f
+0+005c <[^>]*> or a0,a0,at
+0+0060 <[^>]*> dsll32 at,a1,0x1f
+0+0064 <[^>]*> dsrl a0,a1,0x1
+0+0068 <[^>]*> or a0,a0,at
+0+006c <[^>]*> dsrl a0,a1,0x0
+0+0070 <[^>]*> dnegu at,a1
+0+0074 <[^>]*> dsllv at,a0,at
+0+0078 <[^>]*> dsrlv a0,a0,a1
+0+007c <[^>]*> or a0,a0,at
+0+0080 <[^>]*> dnegu at,a2
+0+0084 <[^>]*> dsllv at,a1,at
+0+0088 <[^>]*> dsrlv a0,a1,a2
+0+008c <[^>]*> or a0,a0,at
+0+0090 <[^>]*> dsrl at,a0,0x1
+0+0094 <[^>]*> dsll32 a0,a0,0x1f
+0+0098 <[^>]*> or a0,a0,at
+0+009c <[^>]*> dsrl a0,a1,0x0
+0+00a0 <[^>]*> dsrl at,a1,0x1
+0+00a4 <[^>]*> dsll32 a0,a1,0x1f
0+00a8 <[^>]*> or a0,a0,at
-0+00ac <[^>]*> dsrl32 at,a1,0x0
-0+00b0 <[^>]*> dsll32 a0,a1,0x0
+0+00ac <[^>]*> dsrl at,a1,0x1f
+0+00b0 <[^>]*> dsll32 a0,a1,0x1
0+00b4 <[^>]*> or a0,a0,at
-0+00b8 <[^>]*> dsrl32 at,a1,0x1
-0+00bc <[^>]*> dsll a0,a1,0x1f
+0+00b8 <[^>]*> dsrl32 at,a1,0x0
+0+00bc <[^>]*> dsll32 a0,a1,0x0
0+00c0 <[^>]*> or a0,a0,at
-0+00c4 <[^>]*> dsrl32 at,a1,0x1f
-0+00c8 <[^>]*> dsll a0,a1,0x1
+0+00c4 <[^>]*> dsrl32 at,a1,0x1
+0+00c8 <[^>]*> dsll a0,a1,0x1f
0+00cc <[^>]*> or a0,a0,at
+0+00d0 <[^>]*> dsrl32 at,a1,0x1f
+0+00d4 <[^>]*> dsll a0,a1,0x1
+0+00d8 <[^>]*> or a0,a0,at
+0+00dc <[^>]*> dsrl a0,a1,0x0
...
#objdump: -Dr
#name: xcoff64 AltiVec tests
-.*: file format aixcoff64-rs6000
+.*: file format aix5?coff64-rs6000
Disassembly of section .text:
#objdump: -Dr -Mbooke64
#name: xcoff64 BookE tests
-.*: file format aixcoff64-rs6000
+.*: file format aix5?coff64-rs6000
Disassembly of section .text:
8: 24 25 00 30 bce 1,4\*cr1\+gt,38 <.text\+0x38>
c: 24 46 00 3d bcel 2,4\*cr1\+eq,48 <.text\+0x48>
10: 24 67 00 5a bcea 3,4\*cr1\+so,58 <.text\+0x58>
- 10: R_BA .text
+ 12: R_BA_16 .text
14: 24 88 00 7b bcela 4,4\*cr2,78 <.text\+0x78>
- 14: R_BA .text
+ 16: R_BA_16 .text
18: 4c a9 00 22 bclre 5,4\*cr2\+gt
1c: 4c aa 00 23 bclrel 5,4\*cr2\+eq
20: 4d 0b 04 22 bcctre 8,4\*cr2\+so
28: 58 00 00 74 be 9c <.text\+0x9c>
2c: 58 00 00 89 bel b4 <.text\+0xb4>
30: 58 00 00 f2 bea f0 <.text\+0xf0>
- 30: R_BA .text
+ 30: R_BA_26 .text
34: 58 00 01 27 bela 124 <.text\+0x124>
- 34: R_BA .text
+ 34: R_BA_26 .text
38: e9 09 00 80 lbze r8,8\(r9\)
3c: e9 8f 00 41 lbzue r12,4\(r15\)
40: 7c 86 40 fe lbzuxe r4,r6,r8
start address 0x0+
Sections:
-Idx Name Size VMA LMA File off Algn
+Idx Name Size VMA LMA File off Algn
0 \.text 0+6c 0+ 0+ 0+34 2\*\*0
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
1 \.data 0+ 0+ 0+ 0+a0 2\*\*0