mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 04:49:54 +08:00
* gas/mips/tls-o32.d, gas/mips/tls-o32.s, gas/mips/tls-ill.l,
gas/mips/tls-ill.s: New files. * gas/mips/mips.exp: Run TLS tests.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
|
* gas/mips/tls-o32.d, gas/mips/tls-o32.s, gas/mips/tls-ill.l,
|
||||||
|
gas/mips/tls-ill.s: New files.
|
||||||
|
* gas/mips/mips.exp: Run TLS tests.
|
||||||
|
|
||||||
2005-03-02 Alan Modra <amodra@bigpond.net.au>
|
2005-03-02 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* gas/ppc/astest.d: Adjust for relocs reduced to section sym.
|
* gas/ppc/astest.d: Adjust for relocs reduced to section sym.
|
||||||
|
@ -336,6 +336,11 @@ proc run_list_test_arches { name opts arch_list } {
|
|||||||
foreach arch $arch_list {
|
foreach arch $arch_list {
|
||||||
run_list_test_arch "$name" "$opts" "$arch"
|
run_list_test_arch "$name" "$opts" "$arch"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if $elf {
|
||||||
|
run_list_test "tls-ill" "-32"
|
||||||
|
run_dump_test "tls-o32"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
11
gas/testsuite/gas/mips/tls-ill.l
Normal file
11
gas/testsuite/gas/mips/tls-ill.l
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
.*: Assembler messages:
|
||||||
|
.*:6: Error: bad expression
|
||||||
|
.*:6: Error: illegal operands `addiu'
|
||||||
|
.*:7: Error: bad expression
|
||||||
|
.*:7: Error: illegal operands `addiu'
|
||||||
|
.*:8: Error: bad expression
|
||||||
|
.*:8: Error: missing '\)'
|
||||||
|
.*:8: Error: illegal operands `addiu'
|
||||||
|
.*:9: Error: bad expression
|
||||||
|
.*:9: Error: missing '\)'
|
||||||
|
.*:9: Error: illegal operands `addiu'
|
9
gas/testsuite/gas/mips/tls-ill.s
Normal file
9
gas/testsuite/gas/mips/tls-ill.s
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
.abicalls
|
||||||
|
.text
|
||||||
|
|
||||||
|
/* These have obvious meanings, but we don't have currently defined
|
||||||
|
relocations for them. */
|
||||||
|
addiu $4,$28,%dtprel(tlsvar)
|
||||||
|
addiu $4,$28,%tprel(tlsvar)
|
||||||
|
addiu $4,$28,%lo(%gottprel(tlsvar))
|
||||||
|
addiu $4,$28,%hi(%gottprel(tlsvar))
|
55
gas/testsuite/gas/mips/tls-o32.d
Normal file
55
gas/testsuite/gas/mips/tls-o32.d
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
#as: -EB -march=mips1 -mabi=32
|
||||||
|
#objdump: -dr
|
||||||
|
#name: MIPS ELF TLS o32
|
||||||
|
|
||||||
|
dump.o: file format elf32-.*bigmips
|
||||||
|
|
||||||
|
Disassembly of section .text:
|
||||||
|
|
||||||
|
00000000 <fn>:
|
||||||
|
0: 3c1c0000 lui gp,0x0
|
||||||
|
0: R_MIPS_HI16 _gp_disp
|
||||||
|
4: 279c0000 addiu gp,gp,0
|
||||||
|
4: R_MIPS_LO16 _gp_disp
|
||||||
|
8: 0399e021 addu gp,gp,t9
|
||||||
|
c: 27bdfff0 addiu sp,sp,-16
|
||||||
|
10: afbe0008 sw s8,8\(sp\)
|
||||||
|
14: 03a0f021 move s8,sp
|
||||||
|
18: afbc0000 sw gp,0\(sp\)
|
||||||
|
1c: 8f990000 lw t9,0\(gp\)
|
||||||
|
1c: R_MIPS_CALL16 __tls_get_addr
|
||||||
|
20: 27840000 addiu a0,gp,0
|
||||||
|
20: R_MIPS_TLS_GD tlsvar_gd
|
||||||
|
24: 0320f809 jalr t9
|
||||||
|
28: 00000000 nop
|
||||||
|
2c: 8fdc0000 lw gp,0\(s8\)
|
||||||
|
30: 00000000 nop
|
||||||
|
34: 8f990000 lw t9,0\(gp\)
|
||||||
|
34: R_MIPS_CALL16 __tls_get_addr
|
||||||
|
38: 27840000 addiu a0,gp,0
|
||||||
|
38: R_MIPS_TLS_LDM tlsvar_ld
|
||||||
|
3c: 0320f809 jalr t9
|
||||||
|
40: 00000000 nop
|
||||||
|
44: 8fdc0000 lw gp,0\(s8\)
|
||||||
|
48: 00401021 move v0,v0
|
||||||
|
4c: 3c030000 lui v1,0x0
|
||||||
|
4c: R_MIPS_TLS_DTPREL_HI16 tlsvar_ld
|
||||||
|
50: 24630000 addiu v1,v1,0
|
||||||
|
50: R_MIPS_TLS_DTPREL_LO16 tlsvar_ld
|
||||||
|
54: 00621821 addu v1,v1,v0
|
||||||
|
58: 7c02283b 0x7c02283b
|
||||||
|
5c: 8f830000 lw v1,0\(gp\)
|
||||||
|
5c: R_MIPS_TLS_GOTTPREL tlsvar_ie
|
||||||
|
60: 00000000 nop
|
||||||
|
64: 00621821 addu v1,v1,v0
|
||||||
|
68: 7c02283b 0x7c02283b
|
||||||
|
6c: 3c030000 lui v1,0x0
|
||||||
|
6c: R_MIPS_TLS_TPREL_HI16 tlsvar_le
|
||||||
|
70: 34630000 ori v1,v1,0x0
|
||||||
|
70: R_MIPS_TLS_TPREL_LO16 tlsvar_le
|
||||||
|
74: 00621821 addu v1,v1,v0
|
||||||
|
78: 03c0e821 move sp,s8
|
||||||
|
7c: 8fbe0008 lw s8,8\(sp\)
|
||||||
|
80: 03e00008 jr ra
|
||||||
|
84: 27bd0010 addiu sp,sp,16
|
||||||
|
#pass
|
85
gas/testsuite/gas/mips/tls-o32.s
Normal file
85
gas/testsuite/gas/mips/tls-o32.s
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
.file 1 "tls.s"
|
||||||
|
.abicalls
|
||||||
|
.text
|
||||||
|
.align 2
|
||||||
|
.globl fn
|
||||||
|
.ent fn
|
||||||
|
.type fn,@function
|
||||||
|
fn:
|
||||||
|
.frame $fp,16,$31
|
||||||
|
.mask 0x40000000,-8
|
||||||
|
.fmask 0x00000000,0
|
||||||
|
.set noreorder
|
||||||
|
.cpload $25
|
||||||
|
.set reorder
|
||||||
|
addiu $sp,$sp,-16
|
||||||
|
sw $fp,8($sp)
|
||||||
|
move $fp,$sp
|
||||||
|
.cprestore 0
|
||||||
|
|
||||||
|
# General Dynamic
|
||||||
|
lw $25,%call16(__tls_get_addr)($28)
|
||||||
|
addiu $4,$28,%tlsgd(tlsvar_gd)
|
||||||
|
jal $25
|
||||||
|
|
||||||
|
# Local Dynamic
|
||||||
|
lw $25,%call16(__tls_get_addr)($28)
|
||||||
|
addiu $4,$28,%tlsldm(tlsvar_ld)
|
||||||
|
jal $25
|
||||||
|
|
||||||
|
move $2,$2 # Arbitrary instructions
|
||||||
|
|
||||||
|
lui $3,%dtprel_hi(tlsvar_ld)
|
||||||
|
addiu $3,$3,%dtprel_lo(tlsvar_ld)
|
||||||
|
addu $3,$3,$2
|
||||||
|
|
||||||
|
# Initial Exec
|
||||||
|
.set push
|
||||||
|
.set mips32r2
|
||||||
|
rdhwr $2, $5
|
||||||
|
.set pop
|
||||||
|
lw $3,%gottprel(tlsvar_ie)($28)
|
||||||
|
addu $3,$3,$2
|
||||||
|
|
||||||
|
# Local Exec
|
||||||
|
.set push
|
||||||
|
.set mips32r2
|
||||||
|
rdhwr $2, $5
|
||||||
|
.set pop
|
||||||
|
lui $3,%tprel_hi(tlsvar_le)
|
||||||
|
ori $3,$3,%tprel_lo(tlsvar_le)
|
||||||
|
addu $3,$3,$2
|
||||||
|
|
||||||
|
move $sp,$fp
|
||||||
|
lw $fp,8($sp)
|
||||||
|
addiu $sp,$sp,16
|
||||||
|
j $31
|
||||||
|
.end fn
|
||||||
|
|
||||||
|
.section .tbss,"awT",@nobits
|
||||||
|
.align 2
|
||||||
|
.global tlsvar_gd
|
||||||
|
.type tlsvar_gd,@object
|
||||||
|
.size tlsvar_gd,4
|
||||||
|
tlsvar_gd:
|
||||||
|
.space 4
|
||||||
|
.global tlsvar_ie
|
||||||
|
.type tlsvar_ie,@object
|
||||||
|
.size tlsvar_ie,4
|
||||||
|
tlsvar_ie:
|
||||||
|
.space 4
|
||||||
|
|
||||||
|
.section .tdata,"awT"
|
||||||
|
.align 2
|
||||||
|
.global tlsvar_ld
|
||||||
|
.hidden tlsvar_ld
|
||||||
|
.type tlsvar_ld,@object
|
||||||
|
.size tlsvar_ld,4
|
||||||
|
tlsvar_ld:
|
||||||
|
.word 1
|
||||||
|
.global tlsvar_le
|
||||||
|
.hidden tlsvar_le
|
||||||
|
.type tlsvar_le,@object
|
||||||
|
.size tlsvar_le,4
|
||||||
|
tlsvar_le:
|
||||||
|
.word 1
|
Reference in New Issue
Block a user