mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 19:50:13 +08:00
New testcase for sparclet extensions.
This commit is contained in:
@ -33,6 +33,8 @@ prefetch.d
|
|||||||
prefetch.s
|
prefetch.s
|
||||||
rdpr.d
|
rdpr.d
|
||||||
rdpr.s
|
rdpr.s
|
||||||
|
splet.d
|
||||||
|
splet.s
|
||||||
synth.d
|
synth.d
|
||||||
synth.s
|
synth.s
|
||||||
synth64.d
|
synth64.d
|
||||||
|
169
gas/testsuite/gas/sparc/splet.d
Normal file
169
gas/testsuite/gas/sparc/splet.d
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
#as: -Asparclet
|
||||||
|
#objdump: -dr
|
||||||
|
#name: sparclet extensions
|
||||||
|
|
||||||
|
.*: +file format .*
|
||||||
|
|
||||||
|
Disassembly of section .text:
|
||||||
|
0+0000 <start> rd %y, %l0
|
||||||
|
0+0004 <start\+4> rd %asr1, %l0
|
||||||
|
0+0008 <start\+8> rd %asr15, %l0
|
||||||
|
0+000c <start\+c> rd %asr17, %l0
|
||||||
|
0+0010 <start\+10> rd %asr18, %l0
|
||||||
|
0+0014 <start\+14> rd %asr19, %l0
|
||||||
|
0+0018 <start\+18> rd %asr20, %l0
|
||||||
|
0+001c <start\+1c> rd %asr21, %l0
|
||||||
|
0+0020 <start\+20> rd %asr22, %l0
|
||||||
|
0+0024 <start\+24> mov %l0, %y
|
||||||
|
0+0028 <start\+28> mov %l0, %asr1
|
||||||
|
0+002c <start\+2c> mov %l0, %asr15
|
||||||
|
0+0030 <start\+30> mov %l0, %asr17
|
||||||
|
0+0034 <start\+34> mov %l0, %asr18
|
||||||
|
0+0038 <start\+38> mov %l0, %asr19
|
||||||
|
0+003c <start\+3c> mov %l0, %asr20
|
||||||
|
0+0040 <start\+40> mov %l0, %asr21
|
||||||
|
0+0044 <start\+44> mov %l0, %asr22
|
||||||
|
0+0048 <test_umul> umul %g1, %g2, %g3
|
||||||
|
0+004c <test_umul\+4> umul %g1, %g2, %g3
|
||||||
|
0+0050 <test_smul> smul %g1, %g2, %g3
|
||||||
|
0+0054 <test_smul\+4> smul %g1, %g2, %g3
|
||||||
|
0+0058 <test_stbar> stbar
|
||||||
|
0+005c <test_stbar\+4> stbar
|
||||||
|
0+0060 <test_stbar\+8> unimp 0x1
|
||||||
|
0+0064 <test_stbar\+c> flush %l1
|
||||||
|
0+0068 <test_scan> scan %l1, -1, %l3
|
||||||
|
0+006c <test_scan\+4> scan %l1, 0, %l3
|
||||||
|
0+0070 <test_scan\+8> scan %l1, %l1, %l3
|
||||||
|
0+0074 <test_shuffle> shuffle %l0, 1, %l1
|
||||||
|
0+0078 <test_shuffle\+4> shuffle %l0, 2, %l1
|
||||||
|
0+007c <test_shuffle\+8> shuffle %l0, 4, %l1
|
||||||
|
0+0080 <test_shuffle\+c> shuffle %l0, 8, %l1
|
||||||
|
0+0084 <test_shuffle\+10> shuffle %l0, 0x10, %l1
|
||||||
|
0+0088 <test_shuffle\+14> shuffle %l0, 0x18, %l1
|
||||||
|
0+008c <test_umac> umac %l1, %l2, %l0
|
||||||
|
0+0090 <test_umac\+4> umac %l1, 2, %l0
|
||||||
|
0+0094 <test_umac\+8> umac %l1, 2, %l0
|
||||||
|
0+0098 <test_umacd> umacd %l2, %l4, %l0
|
||||||
|
0+009c <test_umacd\+4> umacd %l2, 3, %l0
|
||||||
|
0+00a0 <test_umacd\+8> umacd %l2, 3, %l0
|
||||||
|
0+00a4 <test_smac> smac %l1, %l2, %l0
|
||||||
|
0+00a8 <test_smac\+4> smac %l1, -42, %l0
|
||||||
|
0+00ac <test_smac\+8> smac %l1, -42, %l0
|
||||||
|
0+00b0 <test_smacd> smacd %l2, %l4, %l0
|
||||||
|
0+00b4 <test_smacd\+4> smacd %l2, 0x7b, %l0
|
||||||
|
0+00b8 <test_smacd\+8> smacd %l2, 0x7b, %l0
|
||||||
|
0+00bc <test_umuld> umuld %o2, %o4, %o0
|
||||||
|
0+00c0 <test_umuld\+4> umuld %o2, 0x234, %o0
|
||||||
|
0+00c4 <test_umuld\+8> umuld %o2, 0x567, %o0
|
||||||
|
0+00c8 <test_smuld> smuld %i2, %i4, %i0
|
||||||
|
0+00cc <test_smuld\+4> smuld %i2, -4096, %i0
|
||||||
|
0+00d0 <test_smuld\+8> smuld %i4, 0xfff, %i0
|
||||||
|
0+00d4 <test_coprocessor> cpush %l0, %l1
|
||||||
|
0+00d8 <test_coprocessor\+4> cpush %l0, 1
|
||||||
|
0+00dc <test_coprocessor\+8> cpusha %l0, %l1
|
||||||
|
0+00e0 <test_coprocessor\+c> cpush %l0, 1
|
||||||
|
0+00e4 <test_coprocessor\+10> cpull %l0
|
||||||
|
0+00e8 <test_coprocessor\+14> crdcxt %ccsr, %l0
|
||||||
|
0+00ec <test_coprocessor\+18> crdcxt %ccfr, %l0
|
||||||
|
0+00f0 <test_coprocessor\+1c> crdcxt %ccpr, %l0
|
||||||
|
0+00f4 <test_coprocessor\+20> crdcxt %cccrcr, %l0
|
||||||
|
0+00f8 <test_coprocessor\+24> cwrcxt %l0, %ccsr
|
||||||
|
0+00fc <test_coprocessor\+28> cwrcxt %l0, %ccfr
|
||||||
|
0+0100 <test_coprocessor\+2c> cwrcxt %l0, %ccpr
|
||||||
|
0+0104 <test_coprocessor\+30> cwrcxt %l0, %cccrcr
|
||||||
|
0+0108 <test_coprocessor\+34> cbn 0000010c <test_coprocessor\+38>
|
||||||
|
.*RELOC: 0+0108 WDISP22 stop\+0xfffffef8
|
||||||
|
0+010c <test_coprocessor\+38> nop
|
||||||
|
0+0110 <test_coprocessor\+3c> cbn,a 00000114 <test_coprocessor\+40>
|
||||||
|
.*RELOC: 0+0110 WDISP22 stop\+0xfffffef0
|
||||||
|
0+0114 <test_coprocessor\+40> nop
|
||||||
|
0+0118 <test_coprocessor\+44> cbe 0000011c <test_coprocessor\+48>
|
||||||
|
.*RELOC: 0+0118 WDISP22 stop\+0xfffffee8
|
||||||
|
0+011c <test_coprocessor\+48> nop
|
||||||
|
0+0120 <test_coprocessor\+4c> cbe,a 00000124 <test_coprocessor\+50>
|
||||||
|
.*RELOC: 0+0120 WDISP22 stop\+0xfffffee0
|
||||||
|
0+0124 <test_coprocessor\+50> nop
|
||||||
|
0+0128 <test_coprocessor\+54> cbf 0000012c <test_coprocessor\+58>
|
||||||
|
.*RELOC: 0+0128 WDISP22 stop\+0xfffffed8
|
||||||
|
0+012c <test_coprocessor\+58> nop
|
||||||
|
0+0130 <test_coprocessor\+5c> cbf,a 00000134 <test_coprocessor\+60>
|
||||||
|
.*RELOC: 0+0130 WDISP22 stop\+0xfffffed0
|
||||||
|
0+0134 <test_coprocessor\+60> nop
|
||||||
|
0+0138 <test_coprocessor\+64> cbef 0000013c <test_coprocessor\+68>
|
||||||
|
.*RELOC: 0+0138 WDISP22 stop\+0xfffffec8
|
||||||
|
0+013c <test_coprocessor\+68> nop
|
||||||
|
0+0140 <test_coprocessor\+6c> cbef,a 00000144 <test_coprocessor\+70>
|
||||||
|
.*RELOC: 0+0140 WDISP22 stop\+0xfffffec0
|
||||||
|
0+0144 <test_coprocessor\+70> nop
|
||||||
|
0+0148 <test_coprocessor\+74> cbr 0000014c <test_coprocessor\+78>
|
||||||
|
.*RELOC: 0+0148 WDISP22 stop\+0xfffffeb8
|
||||||
|
0+014c <test_coprocessor\+78> nop
|
||||||
|
0+0150 <test_coprocessor\+7c> cbr,a 00000154 <test_coprocessor\+80>
|
||||||
|
.*RELOC: 0+0150 WDISP22 stop\+0xfffffeb0
|
||||||
|
0+0154 <test_coprocessor\+80> nop
|
||||||
|
0+0158 <test_coprocessor\+84> cber 0000015c <test_coprocessor\+88>
|
||||||
|
.*RELOC: 0+0158 WDISP22 stop\+0xfffffea8
|
||||||
|
0+015c <test_coprocessor\+88> nop
|
||||||
|
0+0160 <test_coprocessor\+8c> cber,a 00000164 <test_coprocessor\+90>
|
||||||
|
.*RELOC: 0+0160 WDISP22 stop\+0xfffffea0
|
||||||
|
0+0164 <test_coprocessor\+90> nop
|
||||||
|
0+0168 <test_coprocessor\+94> cbfr 0000016c <test_coprocessor\+98>
|
||||||
|
.*RELOC: 0+0168 WDISP22 stop\+0xfffffe98
|
||||||
|
0+016c <test_coprocessor\+98> nop
|
||||||
|
0+0170 <test_coprocessor\+9c> cbfr,a 00000174 <test_coprocessor\+a0>
|
||||||
|
.*RELOC: 0+0170 WDISP22 stop\+0xfffffe90
|
||||||
|
0+0174 <test_coprocessor\+a0> nop
|
||||||
|
0+0178 <test_coprocessor\+a4> cbefr 0000017c <test_coprocessor\+a8>
|
||||||
|
.*RELOC: 0+0178 WDISP22 stop\+0xfffffe88
|
||||||
|
0+017c <test_coprocessor\+a8> nop
|
||||||
|
0+0180 <test_coprocessor\+ac> cbefr,a 00000184 <test_coprocessor\+b0>
|
||||||
|
.*RELOC: 0+0180 WDISP22 stop\+0xfffffe80
|
||||||
|
0+0184 <test_coprocessor\+b0> nop
|
||||||
|
0+0188 <test_coprocessor\+b4> cba 0000018c <test_coprocessor\+b8>
|
||||||
|
.*RELOC: 0+0188 WDISP22 stop\+0xfffffe78
|
||||||
|
0+018c <test_coprocessor\+b8> nop
|
||||||
|
0+0190 <test_coprocessor\+bc> cba,a 00000194 <test_coprocessor\+c0>
|
||||||
|
.*RELOC: 0+0190 WDISP22 stop\+0xfffffe70
|
||||||
|
0+0194 <test_coprocessor\+c0> nop
|
||||||
|
0+0198 <test_coprocessor\+c4> cbne 0000019c <test_coprocessor\+c8>
|
||||||
|
.*RELOC: 0+0198 WDISP22 stop\+0xfffffe68
|
||||||
|
0+019c <test_coprocessor\+c8> nop
|
||||||
|
0+01a0 <test_coprocessor\+cc> cbne,a 000001a4 <test_coprocessor\+d0>
|
||||||
|
.*RELOC: 0+01a0 WDISP22 stop\+0xfffffe60
|
||||||
|
0+01a4 <test_coprocessor\+d0> nop
|
||||||
|
0+01a8 <test_coprocessor\+d4> cbnf 000001ac <test_coprocessor\+d8>
|
||||||
|
.*RELOC: 0+01a8 WDISP22 stop\+0xfffffe58
|
||||||
|
0+01ac <test_coprocessor\+d8> nop
|
||||||
|
0+01b0 <test_coprocessor\+dc> cbnf,a 000001b4 <test_coprocessor\+e0>
|
||||||
|
.*RELOC: 0+01b0 WDISP22 stop\+0xfffffe50
|
||||||
|
0+01b4 <test_coprocessor\+e0> nop
|
||||||
|
0+01b8 <test_coprocessor\+e4> cbnef 000001bc <test_coprocessor\+e8>
|
||||||
|
.*RELOC: 0+01b8 WDISP22 stop\+0xfffffe48
|
||||||
|
0+01bc <test_coprocessor\+e8> nop
|
||||||
|
0+01c0 <test_coprocessor\+ec> cbnef,a 000001c4 <test_coprocessor\+f0>
|
||||||
|
.*RELOC: 0+01c0 WDISP22 stop\+0xfffffe40
|
||||||
|
0+01c4 <test_coprocessor\+f0> nop
|
||||||
|
0+01c8 <test_coprocessor\+f4> cbnr 000001cc <test_coprocessor\+f8>
|
||||||
|
.*RELOC: 0+01c8 WDISP22 stop\+0xfffffe38
|
||||||
|
0+01cc <test_coprocessor\+f8> nop
|
||||||
|
0+01d0 <test_coprocessor\+fc> cbnr,a 000001d4 <test_coprocessor\+100>
|
||||||
|
.*RELOC: 0+01d0 WDISP22 stop\+0xfffffe30
|
||||||
|
0+01d4 <test_coprocessor\+100> nop
|
||||||
|
0+01d8 <test_coprocessor\+104> cbner 000001dc <test_coprocessor\+108>
|
||||||
|
.*RELOC: 0+01d8 WDISP22 stop\+0xfffffe28
|
||||||
|
0+01dc <test_coprocessor\+108> nop
|
||||||
|
0+01e0 <test_coprocessor\+10c> cbner,a 000001e4 <test_coprocessor\+110>
|
||||||
|
.*RELOC: 0+01e0 WDISP22 stop\+0xfffffe20
|
||||||
|
0+01e4 <test_coprocessor\+110> nop
|
||||||
|
0+01e8 <test_coprocessor\+114> cbnfr 000001ec <test_coprocessor\+118>
|
||||||
|
.*RELOC: 0+01e8 WDISP22 stop\+0xfffffe18
|
||||||
|
0+01ec <test_coprocessor\+118> nop
|
||||||
|
0+01f0 <test_coprocessor\+11c> cbnfr,a 000001f4 <test_coprocessor\+120>
|
||||||
|
.*RELOC: 0+01f0 WDISP22 stop\+0xfffffe10
|
||||||
|
0+01f4 <test_coprocessor\+120> nop
|
||||||
|
0+01f8 <test_coprocessor\+124> cbnefr 000001fc <test_coprocessor\+128>
|
||||||
|
.*RELOC: 0+01f8 WDISP22 stop\+0xfffffe08
|
||||||
|
0+01fc <test_coprocessor\+128> nop
|
||||||
|
0+0200 <test_coprocessor\+12c> cbnefr,a 00000204 <test_coprocessor\+130>
|
||||||
|
.*RELOC: 0+0200 WDISP22 stop\+0xfffffe00
|
||||||
|
0+0204 <test_coprocessor\+130> nop
|
211
gas/testsuite/gas/sparc/splet.s
Normal file
211
gas/testsuite/gas/sparc/splet.s
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
.text
|
||||||
|
.global start
|
||||||
|
|
||||||
|
! Starting point
|
||||||
|
start:
|
||||||
|
|
||||||
|
! test all ASRs
|
||||||
|
|
||||||
|
rd %asr0, %l0
|
||||||
|
rd %asr1, %l0
|
||||||
|
rd %asr15, %l0
|
||||||
|
rd %asr17, %l0
|
||||||
|
rd %asr18, %l0
|
||||||
|
rd %asr19, %l0 ! should stop the processor
|
||||||
|
rd %asr20, %l0
|
||||||
|
rd %asr21, %l0
|
||||||
|
rd %asr22, %l0
|
||||||
|
|
||||||
|
wr %l0, 0, %asr0
|
||||||
|
wr %l0, 0, %asr1
|
||||||
|
wr %l0, 0, %asr15
|
||||||
|
wr %l0, 0, %asr17
|
||||||
|
wr %l0, 0, %asr18
|
||||||
|
wr %l0, 0, %asr19
|
||||||
|
wr %l0, 0, %asr20
|
||||||
|
wr %l0, 0, %asr21
|
||||||
|
wr %l0, 0, %asr22
|
||||||
|
|
||||||
|
! test UMUL with no overflow inside Y
|
||||||
|
test_umul:
|
||||||
|
umul %g1, %g2, %g3
|
||||||
|
|
||||||
|
! test UMUL with an overflow inside Y
|
||||||
|
|
||||||
|
umul %g1, %g2, %g3 ! %g3 must be equal to 0
|
||||||
|
|
||||||
|
! test SMUL with negative result
|
||||||
|
test_smul:
|
||||||
|
smul %g1, %g2, %g3
|
||||||
|
|
||||||
|
! test SMUL with positive result
|
||||||
|
|
||||||
|
smul %g1, %g2, %g3
|
||||||
|
|
||||||
|
! test STBAR: there are two possible syntaxes
|
||||||
|
test_stbar:
|
||||||
|
stbar ! is a valid V8 syntax, at least a synthetic
|
||||||
|
! instruction
|
||||||
|
rd %asr15, %g0 ! other solution
|
||||||
|
|
||||||
|
! test UNIMP
|
||||||
|
unimp 1
|
||||||
|
|
||||||
|
! test FLUSH
|
||||||
|
flush %l1 ! is the official V8 syntax
|
||||||
|
|
||||||
|
! test SCAN: find first 0
|
||||||
|
test_scan:
|
||||||
|
scan %l1, 0xffffffff, %l3
|
||||||
|
|
||||||
|
! test scan: find first 1
|
||||||
|
|
||||||
|
scan %l1, 0, %l3
|
||||||
|
|
||||||
|
! test scan: find first bit != bit-0
|
||||||
|
|
||||||
|
scan %l1, %l1, %l3
|
||||||
|
|
||||||
|
! test SHUFFLE
|
||||||
|
test_shuffle:
|
||||||
|
shuffle %l0, 0x1, %l1
|
||||||
|
shuffle %l0, 0x2, %l1
|
||||||
|
shuffle %l0, 0x4, %l1
|
||||||
|
shuffle %l0, 0x8, %l1
|
||||||
|
shuffle %l0, 0x10, %l1
|
||||||
|
shuffle %l0, 0x18, %l1
|
||||||
|
|
||||||
|
! test UMAC
|
||||||
|
test_umac:
|
||||||
|
umac %l1, %l2, %l0
|
||||||
|
umac %l1, 2, %l0
|
||||||
|
umac 2, %l1, %l0
|
||||||
|
|
||||||
|
! test UMACD
|
||||||
|
test_umacd:
|
||||||
|
umacd %l2, %l4, %l0
|
||||||
|
umacd %l2, 3, %l0
|
||||||
|
umacd 3, %l2, %l0
|
||||||
|
|
||||||
|
! test SMAC
|
||||||
|
test_smac:
|
||||||
|
smac %l1, %l2, %l0
|
||||||
|
smac %l1, -42, %l0
|
||||||
|
smac -42, %l1, %l0
|
||||||
|
|
||||||
|
! test SMACD
|
||||||
|
test_smacd:
|
||||||
|
smacd %l2, %l4, %l0
|
||||||
|
smacd %l2, 123, %l0
|
||||||
|
smacd 123, %l2, %l0
|
||||||
|
|
||||||
|
! test UMULD
|
||||||
|
test_umuld:
|
||||||
|
umuld %o2, %o4, %o0
|
||||||
|
umuld %o2, 0x234, %o0
|
||||||
|
umuld 0x567, %o2, %o0
|
||||||
|
|
||||||
|
! test SMULD
|
||||||
|
test_smuld:
|
||||||
|
smuld %i2, %i4, %i0
|
||||||
|
smuld %i2, -4096, %i0
|
||||||
|
smuld 4095, %i4, %i0
|
||||||
|
|
||||||
|
! Coprocessor instructions
|
||||||
|
test_coprocessor:
|
||||||
|
! %ccsr is register # 0
|
||||||
|
! %ccfr is register # 1
|
||||||
|
! %ccpr is register # 3
|
||||||
|
! %cccrcr is register # 2
|
||||||
|
|
||||||
|
! test CPUSH: just syntax
|
||||||
|
|
||||||
|
cpush %l0, %l1
|
||||||
|
cpush %l0, 1
|
||||||
|
cpusha %l0, %l1
|
||||||
|
cpusha %l0, 1
|
||||||
|
|
||||||
|
! test CPULL: just syntax
|
||||||
|
|
||||||
|
cpull %l0
|
||||||
|
|
||||||
|
! test CPRDCXT: just syntax
|
||||||
|
|
||||||
|
crdcxt %ccsr, %l0
|
||||||
|
crdcxt %ccfr, %l0
|
||||||
|
crdcxt %ccpr, %l0
|
||||||
|
crdcxt %cccrcr, %l0
|
||||||
|
|
||||||
|
! test CPWRCXT: just syntax
|
||||||
|
|
||||||
|
cwrcxt %l0, %ccsr
|
||||||
|
cwrcxt %l0, %ccfr
|
||||||
|
cwrcxt %l0, %ccpr
|
||||||
|
cwrcxt %l0, %cccrcr
|
||||||
|
|
||||||
|
! test CBccc: just syntax
|
||||||
|
|
||||||
|
cbn stop
|
||||||
|
nop
|
||||||
|
cbn,a stop
|
||||||
|
nop
|
||||||
|
cbe stop
|
||||||
|
nop
|
||||||
|
cbe,a stop
|
||||||
|
nop
|
||||||
|
cbf stop
|
||||||
|
nop
|
||||||
|
cbf,a stop
|
||||||
|
nop
|
||||||
|
cbef stop
|
||||||
|
nop
|
||||||
|
cbef,a stop
|
||||||
|
nop
|
||||||
|
cbr stop
|
||||||
|
nop
|
||||||
|
cbr,a stop
|
||||||
|
nop
|
||||||
|
cber stop
|
||||||
|
nop
|
||||||
|
cber,a stop
|
||||||
|
nop
|
||||||
|
cbfr stop
|
||||||
|
nop
|
||||||
|
cbfr,a stop
|
||||||
|
nop
|
||||||
|
cbefr stop
|
||||||
|
nop
|
||||||
|
cbefr,a stop
|
||||||
|
nop
|
||||||
|
cba stop
|
||||||
|
nop
|
||||||
|
cba,a stop
|
||||||
|
nop
|
||||||
|
cbne stop
|
||||||
|
nop
|
||||||
|
cbne,a stop
|
||||||
|
nop
|
||||||
|
cbnf stop
|
||||||
|
nop
|
||||||
|
cbnf,a stop
|
||||||
|
nop
|
||||||
|
cbnef stop
|
||||||
|
nop
|
||||||
|
cbnef,a stop
|
||||||
|
nop
|
||||||
|
cbnr stop
|
||||||
|
nop
|
||||||
|
cbnr,a stop
|
||||||
|
nop
|
||||||
|
cbner stop
|
||||||
|
nop
|
||||||
|
cbner,a stop
|
||||||
|
nop
|
||||||
|
cbnfr stop
|
||||||
|
nop
|
||||||
|
cbnfr,a stop
|
||||||
|
nop
|
||||||
|
cbnefr stop
|
||||||
|
nop
|
||||||
|
cbnefr,a stop
|
||||||
|
nop
|
Reference in New Issue
Block a user