diff options
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/ChangeLog | 17 | ||||
-rw-r--r-- | gas/testsuite/gas/dlx/alltests.exp | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/dlx/branch.d | 43 | ||||
-rw-r--r-- | gas/testsuite/gas/dlx/branch.s | 31 | ||||
-rw-r--r-- | gas/testsuite/gas/dlx/itype.d | 40 | ||||
-rw-r--r-- | gas/testsuite/gas/dlx/itype.s | 30 | ||||
-rw-r--r-- | gas/testsuite/gas/dlx/lhi.d | 23 | ||||
-rw-r--r-- | gas/testsuite/gas/dlx/lhi.s | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/dlx/load.d | 33 | ||||
-rw-r--r-- | gas/testsuite/gas/dlx/load.s | 19 | ||||
-rw-r--r-- | gas/testsuite/gas/dlx/rtype.d | 38 | ||||
-rw-r--r-- | gas/testsuite/gas/dlx/rtype.s | 33 | ||||
-rw-r--r-- | gas/testsuite/gas/dlx/store.d | 22 | ||||
-rw-r--r-- | gas/testsuite/gas/dlx/store.s | 9 |
14 files changed, 358 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index f443499..dde62c5 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,20 @@ +2002-05-28 Kuang Hwa Lin <kuang@sbcglobal.net> + + * gas/dlx: New directory: DLX gas testsuite + * alltests.exp: New file: Test driver + * branch.d: New file: Expected results. + * branch.s: New file: Test branch insns. + * itype.d: New file: Expected results. + * itype.s: New file: Test ordinary insns. + * lhi.d: New file: Expected results. + * lhi.s: New file: Test load hi insns. + * load.d: New file: Expected results. + * load.s: New file: Test load insns. + * rtype.d: New file: Expected results. + * rtype.s: New file: Test arithmetic insns. + * store.d: New file: Expected results. + * store.s: New file: Test store insns. + 2002-05-23 Tom Rix <trix@redhat.com> * gas/d10v/d10v.exp: Add instruction packing test. diff --git a/gas/testsuite/gas/dlx/alltests.exp b/gas/testsuite/gas/dlx/alltests.exp new file mode 100644 index 0000000..003448b --- /dev/null +++ b/gas/testsuite/gas/dlx/alltests.exp @@ -0,0 +1,10 @@ +# DLX assembler testsuite. + +if [istarget dlx*-*-*] { + run_dump_test "branch" + run_dump_test "itype" + run_dump_test "lhi" + run_dump_test "load" + run_dump_test "rtype" + run_dump_test "store" +} diff --git a/gas/testsuite/gas/dlx/branch.d b/gas/testsuite/gas/dlx/branch.d new file mode 100644 index 0000000..d34048e --- /dev/null +++ b/gas/testsuite/gas/dlx/branch.d @@ -0,0 +1,43 @@ +#as: +#objdump: -dr +#name: branch + +.*: +file format .* + +Disassembly of section .text: + +00000000 <L1>: + 0: 10 80 00 38 beqz r4,0x0000003c + 4: 00 00 00 00 nop + 8: 14 a0 ff f4 bnez r5,0x00000000 + +0000000c <L2>: + c: 20 04 00 44 addi r4,r0,0x0044 + e: R_DLX_RELOC_16 .text + 10: 08 00 00 30 j 0x00000044 + 14: 00 00 00 00 nop + 18: 0c 00 00 20 jal 0x0000003c + 1c: 00 00 00 00 nop + 20: 50 00 00 18 break 0x0000003c + 24: 00 00 00 00 nop + 28: 47 ff ff d4 trap 0x00000000 + 2c: 00 00 00 00 nop + 30: 4a 20 00 00 jr r17 + 34: 00 00 00 00 nop + 38: 4e 20 00 00 jalr r17 + +0000003c <L4>: + 3c: 8c 42 00 88 lw r2,0x0088\[r2\] + 40: 40 00 00 00 rfe 0x00000044 + +00000044 <L5>: + 44: 8c 02 00 00 lw r2,0x0000\[r0\] + 46: R_DLX_RELOC_16 .text + 48: 0b ff ff b4 j 0x00000000 + 4c: 00 00 00 00 nop + 50: 4b e0 00 00 jr r31 + 54: 00 00 00 00 nop + 58: 4b e0 00 00 jr r31 + 5c: 00 00 00 00 nop + 60: 48 20 00 00 jr r1 + 64: 00 00 00 00 nop diff --git a/gas/testsuite/gas/dlx/branch.s b/gas/testsuite/gas/dlx/branch.s new file mode 100644 index 0000000..a61f1d0 --- /dev/null +++ b/gas/testsuite/gas/dlx/branch.s @@ -0,0 +1,31 @@ +.text +L1: +1: beqz r4, L4 + nop + bnez r5, 1b +L2: + mov r4, L5 + j L5 + nop + jal L4 + nop + break L4 + nop + trap 1b + nop + jr s1 + nop + jalr s1 +L4: + lw r2, 8+((L5 - L4)<<4)(r2) + rfe +L5: + lw r2, L1 + call 1b + nop + return + nop + ret + nop + retr at + nop diff --git a/gas/testsuite/gas/dlx/itype.d b/gas/testsuite/gas/dlx/itype.d new file mode 100644 index 0000000..845ae41 --- /dev/null +++ b/gas/testsuite/gas/dlx/itype.d @@ -0,0 +1,40 @@ +#as: +#objdump: -dr +#name: itype + +.*: +file format .* + +Disassembly of section .text: + +00000000 <.text>: + 0: 20 23 7f ff addi r3,r1,0x7fff + 4: 24 23 ff fb addui r3,r1,0xfffb + 8: 28 44 00 30 subi r4,r2,0x0030 + c: 2c 44 00 00 subui r4,r2,0x0000 + e: R_DLX_RELOC_16_HI .text + 10: 30 c5 00 00 andi r5,r6,0x0000 + 12: R_DLX_RELOC_16 .text + 14: 35 4c 00 78 ori r12,r10,0x0078 + 18: 39 af 00 00 xori r15,r13,0x0000 + 1a: R_DLX_RELOC_16 .text + 1c: da 30 00 1c slli r16,r17,0x001c + 1e: R_DLX_RELOC_16 .text + 20: e2 93 00 0f srai r19,r20,0x000f + 24: de f6 ff ff srli r22,r23,0xffff + 28: 63 0f 7f ff seqi r15,r24,0x7fff + 2c: 67 0f 7f ff snei r15,r24,0x7fff + 30: 6b 0f 7f ff slti r15,r24,0x7fff + 34: 6f 7a 00 00 sgti r26,r27,0x0000 + 38: 73 bc a3 29 slei r28,r29,0xa329 + 3c: 75 af 00 30 sgei r15,r13,0x0030 + 40: c3 0f 7f ff sequi r15,r24,0x7fff + 44: c7 0f 7f ff sneui r15,r24,0x7fff + 48: cb 0f 7f ff sltui r15,r24,0x7fff + 4c: cf 7a 00 00 sgtui r26,r27,0x0000 + 50: d3 bc ff fd sleui r28,r29,0xfffd + 54: d5 af 00 30 sgeui r15,r13,0x0030 + 58: 20 01 80 03 addi r1,r0,0x8003 + 5c: 21 28 00 00 addi r8,r9,0x0000 + 60: 24 01 00 00 addui r1,r0,0x0000 + 62: R_DLX_RELOC_16_HI .text + 64: 25 28 00 00 addui r8,r9,0x0000 diff --git a/gas/testsuite/gas/dlx/itype.s b/gas/testsuite/gas/dlx/itype.s new file mode 100644 index 0000000..4550684 --- /dev/null +++ b/gas/testsuite/gas/dlx/itype.s @@ -0,0 +1,30 @@ +.text +2: addi $3,$1,32767 + addui r3,r1,-5 + subi r4,r2,0x30 + subui r4,r2,%hi(2b) + andi a1,a2,2b + ori t4,t2,'x' + xori t7,t5,%lo(2b) +1: slli s0,s1,1b + srai s3,s4,15 + srli s6,s7,0xffff + + seqi t7,t8,0x7fff + snei t7,t8,0x7fff + slti t7,t8,0x7fff + sgti k0,k1,0 + slei gp,sp,-23767 + sgei t7,t5,'0' + + sequi t7,t8,0x7fff + sneui t7,t8,0x7fff + sltui t7,t8,0x7fff + sgtui k0,k1,0 + sleui gp,sp,-3 + sgeui t7,t5,'0' + + mov at,-32765 + mov t0,t1 + movu at,%hi(1b) + movu t0,t1 diff --git a/gas/testsuite/gas/dlx/lhi.d b/gas/testsuite/gas/dlx/lhi.d new file mode 100644 index 0000000..db3b35d --- /dev/null +++ b/gas/testsuite/gas/dlx/lhi.d @@ -0,0 +1,23 @@ +#as: +#objdump: -dr +#name: itype + +.*: +file format .* + +Disassembly of section .text: + +00000000 <.text>: + 0: 3c 03 7f ff lhi r3,0x7fff + 4: 3c 03 00 00 lhi r3,0x0000 + 6: R_DLX_RELOC_16_HI .text + 8: 3c 04 00 00 lhi r4,0x0000 + a: R_DLX_RELOC_16 .text + c: 3c 04 ff fb lhi r4,0xfffb + e: R_DLX_RELOC_16 .text + 10: 3c 04 00 0c lhi r4,0x000c + 14: 20 04 00 00 addi r4,r0,0x0000 + 18: 20 04 00 00 addi r4,r0,0x0000 + 1a: R_DLX_RELOC_16_HI .text + 1c: 34 84 00 18 ori r4,r4,0x0018 + 1e: R_DLX_RELOC_16 .text + 20: 20 64 00 00 addi r4,r3,0x0000 diff --git a/gas/testsuite/gas/dlx/lhi.s b/gas/testsuite/gas/dlx/lhi.s new file mode 100644 index 0000000..9b56bb5 --- /dev/null +++ b/gas/testsuite/gas/dlx/lhi.s @@ -0,0 +1,10 @@ +.text +2: lhi $3,32767 + lui r3,%hi(2b) + sethi r4,%lo(2b) + lui r4, 2b - 5 + sethi r4,('9' - '0') + ('3' - '0') + mov r4,%hi(. - 2b) + mov r4,%hi(.) + ori r4,r4,%lo(. - 4) + mov r4,r3 diff --git a/gas/testsuite/gas/dlx/load.d b/gas/testsuite/gas/dlx/load.d new file mode 100644 index 0000000..64ec551 --- /dev/null +++ b/gas/testsuite/gas/dlx/load.d @@ -0,0 +1,33 @@ +#as: +#objdump: -dr +#name: load + +.*: +file format .* + +Disassembly of section .text: + +00000000 <L-0x10>: + 0: 80 03 00 00 lb r3,0x0000\[r0\] + 2: R_DLX_RELOC_16_HI .text + 4: 80 43 00 00 lb r3,0x0000\[r2\] + 8: 80 03 00 00 lb r3,0x0000\[r0\] + a: R_DLX_RELOC_16_HI .text + c: 90 43 00 00 lbu r3,0x0000\[r2\] + +00000010 <L>: + 10: 84 a3 00 00 lh r3,0x0000\[r5\] + 12: R_DLX_RELOC_16_HI .text + 14: 95 e3 00 08 lhu r3,0x0008\[r15\] + 18: 8c 41 7f ff lw r1,0x7fff\[r2\] + 1c: 8c 01 00 08 lw r1,0x0008\[r0\] + 1e: R_DLX_RELOC_16 .text + 20: 00 00 10 00 nop + 24: 00 00 20 00 nop + 28: 74 68 69 73 sgei r8,r3,0x6973 + 2c: 20 69 73 20 addi r9,r3,0x7320 + 30: 61 20 74 65 seqi r0,r9,0x7465 + 34: 73 74 00 00 slei r20,r27,0x0000 + ... + 40: 98 43 00 00 ldstbu r3,0x0000\[r2\] + 44: 9c 43 00 00 ldsthu r3,0x0000\[r2\] + 48: b0 43 00 00 ldstw r3,0x0000\[r2\] diff --git a/gas/testsuite/gas/dlx/load.s b/gas/testsuite/gas/dlx/load.s new file mode 100644 index 0000000..417a58a --- /dev/null +++ b/gas/testsuite/gas/dlx/load.s @@ -0,0 +1,19 @@ +.text + lb %3,%hi(L) + lb %3,%hi(L - 7f + ((4f - 5f)<<4))(r2) +2: lb %3,%hi(1f) +1: lbu %3,%hi((4f - 5f) + 8 - ((5f - 4f)<<4))(r2) +7: +L: + lh r3,%hi(5f)[r5] +5: lhu v1,('8' - '0')(t7) + lw r1,32767($2) + lw r1,2b + .word 0x1000 + .long 0x2000 +4: + .asciz "this is a test" + .align 4 + ldstbu %3,%hi((4b - 5b) + 8 - ((5b - 4b)<<4))(r2) + ldsthu %3,%hi((4b - 5b) + 8 - ((5b - 4b)<<4))(r2) + ldstw %3,%hi((4b - 5b) + 8 - ((5b - 4b)<<4))(r2) diff --git a/gas/testsuite/gas/dlx/rtype.d b/gas/testsuite/gas/dlx/rtype.d new file mode 100644 index 0000000..0d48e63 --- /dev/null +++ b/gas/testsuite/gas/dlx/rtype.d @@ -0,0 +1,38 @@ +#as: +#objdump: -dr +#name: rtype + +.*: +file format .* + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 22 18 20 add r3,r1,r2 + 4: 00 22 18 20 add r3,r1,r2 + 8: 00 22 18 21 addu r3,r1,r2 + c: 00 43 20 22 sub r4,r2,r3 + 10: 00 43 20 23 subu r4,r2,r3 + 14: 00 c7 28 05 mult r5,r6,r7 + 18: 01 4b 60 06 multu r12,r10,r11 + 1c: 01 ae 78 07 div r15,r13,r14 + 20: 02 32 80 08 divu r16,r17,r18 + 24: 02 95 98 24 and r19,r20,r21 + 28: 02 e0 b0 25 or r22,r23,r0 + 2c: 03 19 78 26 xor r15,r24,r25 + 30: 03 60 d0 04 sll r26,r27,r0 + 34: 03 be e0 07 div r28,r29,r30 + 38: 01 bf 78 06 multu r15,r13,r31 + 3c: 00 43 08 28 seq r1,r2,r3 + 40: 03 e0 20 29 sne r4,r31,r0 + 44: 01 2a 40 2a slt r8,r9,r10 + 48: 00 a6 38 2b sgt r7,r5,r6 + 4c: 00 a6 38 2c sle r7,r5,r6 + 50: 00 a6 38 2d sge r7,r5,r6 + 54: 00 43 08 28 seq r1,r2,r3 + 58: 03 e0 20 29 sne r4,r31,r0 + 5c: 01 2a 40 2a slt r8,r9,r10 + 60: 00 a6 38 2b sgt r7,r5,r6 + 64: 00 a6 38 2c sle r7,r5,r6 + 68: 00 a6 38 2d sge r7,r5,r6 + 6c: 00 a0 50 30 mvts r10,r5 + 70: 00 a0 50 31 mvfs r10,r5 diff --git a/gas/testsuite/gas/dlx/rtype.s b/gas/testsuite/gas/dlx/rtype.s new file mode 100644 index 0000000..c091f1e --- /dev/null +++ b/gas/testsuite/gas/dlx/rtype.s @@ -0,0 +1,33 @@ +.text +1: add $3,$1,$2 + add %3,%1,%2 + addu r3,r1,r2 + sub r4,r2,r3 + subu r4,r2,r3 + mult a1,a2,a3 + multu t4,t2,t3 + div t7,t5,t6 + divu s0,s1,s2 + and s3,s4,s5 + or s6,s7,zero + xor t7,t8,t9 + sll k0,k1,zero + sra gp,sp,fp + srl t7,t5,ra + + seq at,v0,v1 + sne a0,ra,zero + slt t0,t1,t2 + sgt $7,%5,r6 + sle r7,$5,%6 + sge r7,$5,%6 + + seq at,v0,v1 + sne a0,ra,zero + slt t0,t1,t2 + sgt $7,%5,r6 + sle r7,$5,%6 + sge r7,$5,%6 + + mvts $10,r5 + mvfs r10,$5 diff --git a/gas/testsuite/gas/dlx/store.d b/gas/testsuite/gas/dlx/store.d new file mode 100644 index 0000000..04b763a --- /dev/null +++ b/gas/testsuite/gas/dlx/store.d @@ -0,0 +1,22 @@ +#as: +#objdump: -dr +#name: store + +.*: +file format .* + +Disassembly of section .text: + +00000000 <L1-0x1c>: + 0: ac 03 00 1c sw 0x001c\[r0\],r3 + 2: R_DLX_RELOC_16 .text + 4: ac 03 00 00 sw 0x0000\[r0\],r3 + 6: R_DLX_RELOC_16_HI .text + 8: a4 43 ff 90 sh 0xff90\[r2\],r3 + c: a0 03 00 3c sb 0x003c\[r0\],r3 + e: R_DLX_RELOC_16 .text + 10: a0 03 00 30 sb 0x0030\[r0\],r3 + 14: ac 43 00 00 sw 0x0000\[r2\],r3 + 18: 00 00 00 00 nop + +0000001c <L1>: + 1c: 00 00 00 00 nop diff --git a/gas/testsuite/gas/dlx/store.s b/gas/testsuite/gas/dlx/store.s new file mode 100644 index 0000000..fbda68b --- /dev/null +++ b/gas/testsuite/gas/dlx/store.s @@ -0,0 +1,9 @@ +.text +2: sw L1(r0),%3 + sw %hi(L1)(r0),%3 +1: sh (1b - 2b) + 8 - ((5f - 4f)<<4)[r2],r3 +4: sb 4b+'0',$3 +4: sb L1+'0'-L1,$3 +5: sw %hi((L1 - 2b) + 8 + ((5b - 4b)<<4))(r2),%3 + nop +L1: nop |