diff options
author | Nick Clifton <nickc@redhat.com> | 2001-01-11 21:20:20 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2001-01-11 21:20:20 +0000 |
commit | 0d2bcfafbfc1ede123ec9d61813745d775c5251c (patch) | |
tree | ae4a63e1af9df831594f61ef175e7f7a6e4a2567 /gas/testsuite | |
parent | 8805103910cfd8201e621cb766f404c585f3e46e (diff) | |
download | gdb-0d2bcfafbfc1ede123ec9d61813745d775c5251c.zip gdb-0d2bcfafbfc1ede123ec9d61813745d775c5251c.tar.gz gdb-0d2bcfafbfc1ede123ec9d61813745d775c5251c.tar.bz2 |
Updated ARC assembler from arccores.com
Diffstat (limited to 'gas/testsuite')
69 files changed, 3105 insertions, 314 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 1c6cd51..4f1ddd8 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,53 @@ +2001-01-11 Peter Targett <peter.targett@arccores.com> + + * gas/arc/alias.*: Removed. + * gas/arc/branch.*: Likewise. + * gas/arc/insn3.*: Likewise. + * gas/arc/math.*: Likewise. + * gas/arc/sshift.*: Likewise. + * gas/arc/arc.exp: Simplified test process for base case + instruction set by adding run_dump_test cases for all base + instructions. + * gas/arc/adc.s, gas/arc/adc.d: New test cases and dump. + * gas/arc/add.s, gas/arc/add.d: Likewise. + * gas/arc/and.s, gas/arc/and.d: Likewise. + * gas/arc/asl.s, gas/arc/asl.d: Likewise. + * gas/arc/asr.s, gas/arc/asr.d: Likewise. + * gas/arc/b.s, gas/arc/b.d: Likewise. + * gas/arc/bic.s, gas/arc/bic.d: Likewise. + * gas/arc/bl.s, gas/arc/bl.d: Likewise. + * gas/arc/brk.s, gas/arc/brk.d: Likewise. + * gas/arc/extb.s, gas/arc/extb.d: Likewise. + * gas/arc/extw.s, gas/arc/extw.d: Likewise. + * gas/arc/flag.s, gas/arc/flag.d: Likewise. + * gas/arc/j.s, gas/arc/j.d: Likewise. + * gas/arc/jl.s, gas/arc/jl.d: Likewise. + * gas/arc/ld.s, gas/arc/ld.d: Likewise. + * gas/arc/ld2.s, gas/arc/ld2.d: Likewise. + * gas/arc/lp.s, gas/arc/lp.d: Likewise. + * gas/arc/lsr.s, gas/arc/lsr.d: Likewise. + * gas/arc/mov.s, gas/arc/mov.d: Likewise. + * gas/arc/nop.s, gas/arc/nop.d: Likewise. + * gas/arc/or.s, gas/arc/or.d: Likewise. + * gas/arc/rlc.s, gas/arc/rlc.d: Likewise. + * gas/arc/ror.s, gas/arc/ror.d: Likewise. + * gas/arc/rrc.s, gas/arc/rrc.d: Likewise. + * gas/arc/sbc.s, gas/arc/sbc.d: Likewise. + * gas/arc/sexb.s, gas/arc/sexb.d: Likewise. + * gas/arc/sexw.s, gas/arc/sexw.d: Likewise. + * gas/arc/sleep.s, gas/arc/sleep.d: Likewise. + * gas/arc/add.s, gas/arc/add.d: Likewise. + * gas/arc/st.s, gas/arc/st.d: Likewise. + * gas/arc/sub.s, gas/arc/sub.d: Likewise. + * gas/arc/swi.s, gas/arc/swi.d: Likewise. + * gas/arc/xor.s, gas/arc/xor.d: Likewise. + * gas/arc/warn.s: Removed warning test case for setting of flags + followed by conditional branch, an arc5 only feature. + + * gas/ieee-fp/x930509a.exp: Skip test if target also arc*-*-*. + + * gas/vtable/vtable.exp: Skip tests if target also arc*-*-*. + 2001-01-11 Stephane Carrez <Stephane.Carrez@worldnet.fr> * gas/m68hc11/opers12.s: Add more tests for index post byte. diff --git a/gas/testsuite/gas/arc/adc.d b/gas/testsuite/gas/arc/adc.d new file mode 100644 index 0000000..7cb8523 --- /dev/null +++ b/gas/testsuite/gas/arc/adc.d @@ -0,0 +1,85 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 84 00 48 48008400 adc r0,r1,r2 + 4: 00 b8 4d 4b 4b4db800 adc gp,fp,sp + 8: 00 3e af 4b 4baf3e00 adc ilink1,ilink2,blink + c: 00 f8 1d 4f 4f1df800 adc r56,r59,lp_count + 10: 00 fe 00 48 4800fe00 adc r0,r1,0 + 14: 00 84 1f 48 481f8400 adc r0,0,r2 + 18: 00 84 e0 4f 4fe08400 adc 0,r1,r2 + 1c: ff ff 00 48 4800ffff adc r0,r1,-1 + 20: ff 85 1f 48 481f85ff adc r0,-1,r2 + 24: 00 84 e0 4f 4fe08400 adc 0,r1,r2 + 28: ff fe 00 48 4800feff adc r0,r1,255 + 2c: ff 84 1f 48 481f84ff adc r0,255,r2 + 30: 00 84 e0 4f 4fe08400 adc 0,r1,r2 + 34: 00 ff 00 48 4800ff00 adc r0,r1,-256 + 38: 00 85 1f 48 481f8500 adc r0,-256,r2 + 3c: 00 84 e0 4f 4fe08400 adc 0,r1,r2 + 40: 00 fc 00 48 4800fc00 adc r0,r1,0x100 + 44: 00 01 00 00 + 48: 00 04 1f 48 481f0400 adc r0,0xffff_feff,r2 + 4c: ff fe ff ff + 50: ff fc 1f 48 481ffcff adc r0,255,0x100 + 54: 00 01 00 00 + 58: ff 7e 1f 48 481f7eff adc r0,0x100,255 + 5c: 00 01 00 00 + 60: 00 fc 00 48 4800fc00 adc r0,r1,0 + 64: 00 00 00 00 + 64: R_ARC_32 foo + 68: 00 84 00 48 48008400 adc r0,r1,r2 + 6c: 00 0a 62 48 48620a00 adc r3,r4,r5 + 70: 01 90 c3 48 48c39001 adc.z r6,r7,r8 + 74: 01 16 25 49 49251601 adc.z r9,r10,r11 + 78: 02 9c 86 49 49869c02 adc.nz r12,r13,r14 + 7c: 02 22 e8 49 49e82202 adc.nz r15,r16,r17 + 80: 03 a8 49 4a 4a49a803 adc.p r18,r19,r20 + 84: 03 2e ab 4a 4aab2e03 adc.p r21,r22,r23 + 88: 04 b4 0c 4b 4b0cb404 adc.n r24,r25,gp + 8c: 04 3a 6e 4b 4b6e3a04 adc.n fp,sp,ilink1 + 90: 05 c0 cf 4b 4bcfc005 adc.c ilink2,blink,r32 + 94: 05 46 31 4c 4c314605 adc.c r33,r34,r35 + 98: 05 cc 92 4c 4c92cc05 adc.c r36,r37,r38 + 9c: 06 52 f4 4c 4cf45206 adc.nc r39,r40,r41 + a0: 06 d8 55 4d 4d55d806 adc.nc r42,r43,r44 + a4: 06 5e b7 4d 4db75e06 adc.nc r45,r46,r47 + a8: 07 e4 18 4e 4e18e407 adc.v r48,r49,r50 + ac: 07 6a 1a 4f 4f1a6a07 adc.v r56,r52,r53 + b0: 08 f0 1b 4f 4f1bf008 adc.nv r56,r55,r56 + b4: 08 76 1d 4f 4f1d7608 adc.nv r56,r58,r59 + b8: 09 00 9e 4f 4f9e0009 adc.gt lp_count,lp_count,r0 + bc: 0a 7c 00 48 48007c0a adc.ge r0,r0,0 + c0: 00 00 00 00 + c4: 0b 02 3f 48 483f020b adc.lt r1,1,r1 + c8: 01 00 00 00 + cc: 0d 06 7f 48 487f060d adc.hi r3,3,r3 + d0: 03 00 00 00 + d4: 0e 08 df 4f 4fdf080e adc.ls 0,4,r4 + d8: 04 00 00 00 + dc: 0f fc c2 4f 4fc2fc0f adc.pnz 0,r5,5 + e0: 05 00 00 00 + e4: 00 85 00 48 48008500 adc.f r0,r1,r2 + e8: 01 fa 00 48 4800fa01 adc.f r0,r1,1 + ec: 01 84 1e 48 481e8401 adc.f r0,1,r2 + f0: 00 85 e0 4f 4fe08500 adc.f 0,r1,r2 + f4: 00 fd 00 48 4800fd00 adc.f r0,r1,0x200 + f8: 00 02 00 00 + fc: 00 05 1f 48 481f0500 adc.f r0,0x200,r2 + 100: 00 02 00 00 + 104: 01 85 00 48 48008501 adc.z.f r0,r1,r2 + 108: 02 fd 00 48 4800fd02 adc.nz.f r0,r1,0 + 10c: 00 00 00 00 + 110: 0b 05 1f 48 481f050b adc.lt.f r0,0,r2 + 114: 00 00 00 00 + 118: 09 85 c0 4f 4fc08509 adc.gt.f 0,r1,r2 + 11c: 00 00 00 00 00000000 + 120: 0c fd 00 48 4800fd0c adc.le.f r0,r1,0x200 + 124: 00 02 00 00 + 128: 0a 05 1f 48 481f050a adc.ge.f r0,0x200,r2 + 12c: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/adc.s b/gas/testsuite/gas/arc/adc.s new file mode 100644 index 0000000..162f6b8 --- /dev/null +++ b/gas/testsuite/gas/arc/adc.s @@ -0,0 +1,68 @@ +# adc test + + adc r0,r1,r2 + adc r26,fp,sp + adc ilink1,ilink2,blink + adc r56,r59,lp_count + + adc r0,r1,0 + adc r0,0,r2 + adc 0,r1,r2 + adc r0,r1,-1 + adc r0,-1,r2 + adc -1,r1,r2 + adc r0,r1,255 + adc r0,255,r2 + adc 255,r1,r2 + adc r0,r1,-256 + adc r0,-256,r2 + adc -256,r1,r2 + + adc r0,r1,256 + adc r0,-257,r2 + + adc r0,255,256 + adc r0,256,255 + + adc r0,r1,foo + + adc.al r0,r1,r2 + adc.ra r3,r4,r5 + adc.eq r6,r7,r8 + adc.z r9,r10,r11 + adc.ne r12,r13,r14 + adc.nz r15,r16,r17 + adc.pl r18,r19,r20 + adc.p r21,r22,r23 + adc.mi r24,r25,r26 + adc.n r27,r28,r29 + adc.cs r30,r31,r32 + adc.c r33,r34,r35 + adc.lo r36,r37,r38 + adc.cc r39,r40,r41 + adc.nc r42,r43,r44 + adc.hs r45,r46,r47 + adc.vs r48,r49,r50 + adc.v r56,r52,r53 + adc.vc r56,r55,r56 + adc.nv r56,r58,r59 + adc.gt r60,r60,r0 + adc.ge r0,r0,0 + adc.lt r1,1,r1 + adc.hi r3,3,r3 + adc.ls 4,4,r4 + adc.pnz 5,r5,5 + + adc.f r0,r1,r2 + adc.f r0,r1,1 + adc.f r0,1,r2 + adc.f 0,r1,r2 + adc.f r0,r1,512 + adc.f r0,512,r2 + + adc.eq.f r0,r1,r2 + adc.ne.f r0,r1,0 + adc.lt.f r0,0,r2 + adc.gt.f 0,r1,r2 + adc.le.f r0,r1,512 + adc.ge.f r0,512,r2 diff --git a/gas/testsuite/gas/arc/add.d b/gas/testsuite/gas/arc/add.d new file mode 100644 index 0000000..864bc4d --- /dev/null +++ b/gas/testsuite/gas/arc/add.d @@ -0,0 +1,85 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 84 00 40 40008400 add r0,r1,r2 + 4: 00 b8 4d 43 434db800 add gp,fp,sp + 8: 00 3e af 43 43af3e00 add ilink1,ilink2,blink + c: 00 f8 1d 47 471df800 add r56,r59,lp_count + 10: 00 fe 00 40 4000fe00 add r0,r1,0 + 14: 00 84 1f 40 401f8400 add r0,0,r2 + 18: 00 84 e0 47 47e08400 add 0,r1,r2 + 1c: ff ff 00 40 4000ffff add r0,r1,-1 + 20: ff 85 1f 40 401f85ff add r0,-1,r2 + 24: 00 84 e0 47 47e08400 add 0,r1,r2 + 28: ff fe 00 40 4000feff add r0,r1,255 + 2c: ff 84 1f 40 401f84ff add r0,255,r2 + 30: 00 84 e0 47 47e08400 add 0,r1,r2 + 34: 00 ff 00 40 4000ff00 add r0,r1,-256 + 38: 00 85 1f 40 401f8500 add r0,-256,r2 + 3c: 00 84 e0 47 47e08400 add 0,r1,r2 + 40: 00 fc 00 40 4000fc00 add r0,r1,0x100 + 44: 00 01 00 00 + 48: 00 04 1f 40 401f0400 add r0,0xffff_feff,r2 + 4c: ff fe ff ff + 50: ff fc 1f 40 401ffcff add r0,255,0x100 + 54: 00 01 00 00 + 58: ff 7e 1f 40 401f7eff add r0,0x100,255 + 5c: 00 01 00 00 + 60: 00 fc 00 40 4000fc00 add r0,r1,0 + 64: 00 00 00 00 + 64: R_ARC_32 foo + 68: 00 84 00 40 40008400 add r0,r1,r2 + 6c: 00 0a 62 40 40620a00 add r3,r4,r5 + 70: 01 90 c3 40 40c39001 add.z r6,r7,r8 + 74: 01 16 25 41 41251601 add.z r9,r10,r11 + 78: 02 9c 86 41 41869c02 add.nz r12,r13,r14 + 7c: 02 22 e8 41 41e82202 add.nz r15,r16,r17 + 80: 03 a8 49 42 4249a803 add.p r18,r19,r20 + 84: 03 2e ab 42 42ab2e03 add.p r21,r22,r23 + 88: 04 b4 0c 43 430cb404 add.n r24,r25,gp + 8c: 04 3a 6e 43 436e3a04 add.n fp,sp,ilink1 + 90: 05 c0 cf 43 43cfc005 add.c ilink2,blink,r32 + 94: 05 46 31 44 44314605 add.c r33,r34,r35 + 98: 05 cc 92 44 4492cc05 add.c r36,r37,r38 + 9c: 06 52 f4 44 44f45206 add.nc r39,r40,r41 + a0: 06 d8 55 45 4555d806 add.nc r42,r43,r44 + a4: 06 5e b7 45 45b75e06 add.nc r45,r46,r47 + a8: 07 e4 18 46 4618e407 add.v r48,r49,r50 + ac: 07 6a 1a 47 471a6a07 add.v r56,r52,r53 + b0: 08 f0 1b 47 471bf008 add.nv r56,r55,r56 + b4: 08 76 1d 47 471d7608 add.nv r56,r58,r59 + b8: 09 00 9e 47 479e0009 add.gt lp_count,lp_count,r0 + bc: 0a 7c 00 40 40007c0a add.ge r0,r0,0 + c0: 00 00 00 00 + c4: 0b 02 3f 40 403f020b add.lt r1,1,r1 + c8: 01 00 00 00 + cc: 0d 06 7f 40 407f060d add.hi r3,3,r3 + d0: 03 00 00 00 + d4: 0e 08 df 47 47df080e add.ls 0,4,r4 + d8: 04 00 00 00 + dc: 0f fc c2 47 47c2fc0f add.pnz 0,r5,5 + e0: 05 00 00 00 + e4: 00 85 00 40 40008500 add.f r0,r1,r2 + e8: 01 fa 00 40 4000fa01 add.f r0,r1,1 + ec: 01 84 1e 40 401e8401 add.f r0,1,r2 + f0: 00 85 e0 47 47e08500 add.f 0,r1,r2 + f4: 00 fd 00 40 4000fd00 add.f r0,r1,0x200 + f8: 00 02 00 00 + fc: 00 05 1f 40 401f0500 add.f r0,0x200,r2 + 100: 00 02 00 00 + 104: 01 85 00 40 40008501 add.z.f r0,r1,r2 + 108: 02 fd 00 40 4000fd02 add.nz.f r0,r1,0 + 10c: 00 00 00 00 + 110: 0b 05 1f 40 401f050b add.lt.f r0,0,r2 + 114: 00 00 00 00 + 118: 09 85 c0 47 47c08509 add.gt.f 0,r1,r2 + 11c: 00 00 00 00 00000000 + 120: 0c fd 00 40 4000fd0c add.le.f r0,r1,0x200 + 124: 00 02 00 00 + 128: 0a 05 1f 40 401f050a add.ge.f r0,0x200,r2 + 12c: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/add.s b/gas/testsuite/gas/arc/add.s new file mode 100644 index 0000000..8e74971 --- /dev/null +++ b/gas/testsuite/gas/arc/add.s @@ -0,0 +1,68 @@ +# add test + + add r0,r1,r2 + add r26,fp,sp + add ilink1,ilink2,blink + add r56,r59,lp_count + + add r0,r1,0 + add r0,0,r2 + add 0,r1,r2 + add r0,r1,-1 + add r0,-1,r2 + add -1,r1,r2 + add r0,r1,255 + add r0,255,r2 + add 255,r1,r2 + add r0,r1,-256 + add r0,-256,r2 + add -256,r1,r2 + + add r0,r1,256 + add r0,-257,r2 + + add r0,255,256 + add r0,256,255 + + add r0,r1,foo + + add.al r0,r1,r2 + add.ra r3,r4,r5 + add.eq r6,r7,r8 + add.z r9,r10,r11 + add.ne r12,r13,r14 + add.nz r15,r16,r17 + add.pl r18,r19,r20 + add.p r21,r22,r23 + add.mi r24,r25,r26 + add.n r27,r28,r29 + add.cs r30,r31,r32 + add.c r33,r34,r35 + add.lo r36,r37,r38 + add.cc r39,r40,r41 + add.nc r42,r43,r44 + add.hs r45,r46,r47 + add.vs r48,r49,r50 + add.v r56,r52,r53 + add.vc r56,r55,r56 + add.nv r56,r58,r59 + add.gt r60,r60,r0 + add.ge r0,r0,0 + add.lt r1,1,r1 + add.hi r3,3,r3 + add.ls 4,4,r4 + add.pnz 5,r5,5 + + add.f r0,r1,r2 + add.f r0,r1,1 + add.f r0,1,r2 + add.f 0,r1,r2 + add.f r0,r1,512 + add.f r0,512,r2 + + add.eq.f r0,r1,r2 + add.ne.f r0,r1,0 + add.lt.f r0,0,r2 + add.gt.f 0,r1,r2 + add.le.f r0,r1,512 + add.ge.f r0,512,r2 diff --git a/gas/testsuite/gas/arc/and.d b/gas/testsuite/gas/arc/and.d new file mode 100644 index 0000000..5fca082 --- /dev/null +++ b/gas/testsuite/gas/arc/and.d @@ -0,0 +1,85 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 84 00 60 60008400 and r0,r1,r2 + 4: 00 b8 4d 63 634db800 and gp,fp,sp + 8: 00 3e af 63 63af3e00 and ilink1,ilink2,blink + c: 00 f8 1d 67 671df800 and r56,r59,lp_count + 10: 00 fe 00 60 6000fe00 and r0,r1,0 + 14: 00 84 1f 60 601f8400 and r0,0,r2 + 18: 00 84 e0 67 67e08400 and 0,r1,r2 + 1c: ff ff 00 60 6000ffff and r0,r1,-1 + 20: ff 85 1f 60 601f85ff and r0,-1,r2 + 24: 00 84 e0 67 67e08400 and 0,r1,r2 + 28: ff fe 00 60 6000feff and r0,r1,255 + 2c: ff 84 1f 60 601f84ff and r0,255,r2 + 30: 00 84 e0 67 67e08400 and 0,r1,r2 + 34: 00 ff 00 60 6000ff00 and r0,r1,-256 + 38: 00 85 1f 60 601f8500 and r0,-256,r2 + 3c: 00 84 e0 67 67e08400 and 0,r1,r2 + 40: 00 fc 00 60 6000fc00 and r0,r1,0x100 + 44: 00 01 00 00 + 48: 00 04 1f 60 601f0400 and r0,0xffff_feff,r2 + 4c: ff fe ff ff + 50: ff fc 1f 60 601ffcff and r0,255,0x100 + 54: 00 01 00 00 + 58: ff 7e 1f 60 601f7eff and r0,0x100,255 + 5c: 00 01 00 00 + 60: 00 fc 00 60 6000fc00 and r0,r1,0 + 64: 00 00 00 00 + 64: R_ARC_32 foo + 68: 00 84 00 60 60008400 and r0,r1,r2 + 6c: 00 0a 62 60 60620a00 and r3,r4,r5 + 70: 01 90 c3 60 60c39001 and.z r6,r7,r8 + 74: 01 16 25 61 61251601 and.z r9,r10,r11 + 78: 02 9c 86 61 61869c02 and.nz r12,r13,r14 + 7c: 02 22 e8 61 61e82202 and.nz r15,r16,r17 + 80: 03 a8 49 62 6249a803 and.p r18,r19,r20 + 84: 03 2e ab 62 62ab2e03 and.p r21,r22,r23 + 88: 04 b4 0c 63 630cb404 and.n r24,r25,gp + 8c: 04 3a 6e 63 636e3a04 and.n fp,sp,ilink1 + 90: 05 c0 cf 63 63cfc005 and.c ilink2,blink,r32 + 94: 05 46 31 64 64314605 and.c r33,r34,r35 + 98: 05 cc 92 64 6492cc05 and.c r36,r37,r38 + 9c: 06 52 f4 64 64f45206 and.nc r39,r40,r41 + a0: 06 d8 55 65 6555d806 and.nc r42,r43,r44 + a4: 06 5e b7 65 65b75e06 and.nc r45,r46,r47 + a8: 07 e4 18 66 6618e407 and.v r48,r49,r50 + ac: 07 6a 1a 67 671a6a07 and.v r56,r52,r53 + b0: 08 f0 1b 67 671bf008 and.nv r56,r55,r56 + b4: 08 76 1d 67 671d7608 and.nv r56,r58,r59 + b8: 09 00 9e 67 679e0009 and.gt lp_count,lp_count,r0 + bc: 0a 7c 00 60 60007c0a and.ge r0,r0,0 + c0: 00 00 00 00 + c4: 0b 02 3f 60 603f020b and.lt r1,1,r1 + c8: 01 00 00 00 + cc: 0d 06 7f 60 607f060d and.hi r3,3,r3 + d0: 03 00 00 00 + d4: 0e 08 df 67 67df080e and.ls 0,4,r4 + d8: 04 00 00 00 + dc: 0f fc c2 67 67c2fc0f and.pnz 0,r5,5 + e0: 05 00 00 00 + e4: 00 85 00 60 60008500 and.f r0,r1,r2 + e8: 01 fa 00 60 6000fa01 and.f r0,r1,1 + ec: 01 84 1e 60 601e8401 and.f r0,1,r2 + f0: 00 85 e0 67 67e08500 and.f 0,r1,r2 + f4: 00 fd 00 60 6000fd00 and.f r0,r1,0x200 + f8: 00 02 00 00 + fc: 00 05 1f 60 601f0500 and.f r0,0x200,r2 + 100: 00 02 00 00 + 104: 01 85 00 60 60008501 and.z.f r0,r1,r2 + 108: 02 fd 00 60 6000fd02 and.nz.f r0,r1,0 + 10c: 00 00 00 00 + 110: 0b 05 1f 60 601f050b and.lt.f r0,0,r2 + 114: 00 00 00 00 + 118: 09 85 c0 67 67c08509 and.gt.f 0,r1,r2 + 11c: 00 00 00 00 00000000 + 120: 0c fd 00 60 6000fd0c and.le.f r0,r1,0x200 + 124: 00 02 00 00 + 128: 0a 05 1f 60 601f050a and.ge.f r0,0x200,r2 + 12c: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/and.s b/gas/testsuite/gas/arc/and.s new file mode 100644 index 0000000..ddd7865 --- /dev/null +++ b/gas/testsuite/gas/arc/and.s @@ -0,0 +1,68 @@ +# and test + + and r0,r1,r2 + and r26,fp,sp + and ilink1,ilink2,blink + and r56,r59,lp_count + + and r0,r1,0 + and r0,0,r2 + and 0,r1,r2 + and r0,r1,-1 + and r0,-1,r2 + and -1,r1,r2 + and r0,r1,255 + and r0,255,r2 + and 255,r1,r2 + and r0,r1,-256 + and r0,-256,r2 + and -256,r1,r2 + + and r0,r1,256 + and r0,-257,r2 + + and r0,255,256 + and r0,256,255 + + and r0,r1,foo + + and.al r0,r1,r2 + and.ra r3,r4,r5 + and.eq r6,r7,r8 + and.z r9,r10,r11 + and.ne r12,r13,r14 + and.nz r15,r16,r17 + and.pl r18,r19,r20 + and.p r21,r22,r23 + and.mi r24,r25,r26 + and.n r27,r28,r29 + and.cs r30,r31,r32 + and.c r33,r34,r35 + and.lo r36,r37,r38 + and.cc r39,r40,r41 + and.nc r42,r43,r44 + and.hs r45,r46,r47 + and.vs r48,r49,r50 + and.v r56,r52,r53 + and.vc r56,r55,r56 + and.nv r56,r58,r59 + and.gt r60,r60,r0 + and.ge r0,r0,0 + and.lt r1,1,r1 + and.hi r3,3,r3 + and.ls 4,4,r4 + and.pnz 5,r5,5 + + and.f r0,r1,r2 + and.f r0,r1,1 + and.f r0,1,r2 + and.f 0,r1,r2 + and.f r0,r1,512 + and.f r0,512,r2 + + and.eq.f r0,r1,r2 + and.ne.f r0,r1,0 + and.lt.f r0,0,r2 + and.gt.f 0,r1,r2 + and.le.f r0,r1,512 + and.ge.f r0,512,r2 diff --git a/gas/testsuite/gas/arc/arc.exp b/gas/testsuite/gas/arc/arc.exp index b098453..2e115f9 100644 --- a/gas/testsuite/gas/arc/arc.exp +++ b/gas/testsuite/gas/arc/arc.exp @@ -1,114 +1,45 @@ -# ARC gas testsuite - -# Test an insn from a template .s/.d. -# The best way to create the .d file is to run the tests without it, let -# dejagnu crash, run as.new on the just built .s file, run objdump -dr on -# the result of that, copy the result into the .d file, and edit in the -# necessary patterns (@OC@, etc.). Sounds complicated but it's easy. The -# catch is that we assume a working assembler is used to build it. That's -# obviously not entirely kosher, but once the .d file is created one can -# verify it's contents over time. -# -# Template patterns: -# @OC@ - placeholder for the opcode -# @IC+?@ - place holder for the insn code -# @I3+??@ - place holder for the operation code of code 3 insns. - -proc test_template_insn { cpu tmpl opcode icode } { - global srcdir subdir objdir - - # Change @OC@ in the template file to $opcode - - set in_fd [open $srcdir/$subdir/$tmpl.s r] - set out_fd [open $objdir/$opcode.s w] - # FIXME: check return codes - - puts $out_fd "\t.cpu $cpu\n" - while { [gets $in_fd line] >= 0 } { - regsub "@OC@" $line $opcode line - puts $out_fd $line - } - - close $in_fd - close $out_fd - - # Create output template. - - set in_fd [open $srcdir/$subdir/$tmpl.d r] - set out_fd [open $objdir/$opcode.d w] - # FIXME: check return codes - - while { [gets $in_fd line] >= 0 } { - regsub "@OC@" $line $opcode line - #send_user "$line\n" - if [string match "*@IC+?@*" $line] { - # Insert the opcode. It occupies the top 5 bits. - regexp "^(.*)@IC\\+(.)@(.*)$" $line junk leftpart n rightpart - set n [expr ($icode << 3) + $n] - set n [format "%02x" $n] - puts $out_fd "$leftpart$n$rightpart" - } elseif [string match "*@I3+??@*" $line] { - # Insert insn 3 code (register C field) - # b15=8/0, b8=1/0 (their respective hex values in the objdump) - regexp "^(.*)@I3\\+(.)(.)@(.*)$" $line junk leftpart b15 b8 rightpart - set n [expr ($icode << 1) + ($b15 << 4) + ($b8 << 0)] - set n [format "%02x" $n] - puts $out_fd "$leftpart$n$rightpart" - } else { - puts $out_fd $line - } - } - - close $in_fd - close $out_fd - - # Finally, run the test. - - run_dump_test $objdir/$opcode - - # "make clean" won't delete these, so for now we must. - catch "exec rm -f $objdir/$opcode.s $objdir/$opcode.d" +# ARC base instruction set (to arc8) +if [istarget arc*-*-*] then { + run_dump_test ld + run_dump_test ld2 + run_dump_test st + + # Specially encoded/single operand instructions + run_dump_test flag + run_dump_test brk + run_dump_test sleep + run_dump_test swi + run_dump_test asr + run_dump_test lsr + run_dump_test ror + run_dump_test rrc + run_dump_test sexb + run_dump_test sexw + run_dump_test extb + run_dump_test extw + + run_dump_test b + run_dump_test bl + run_dump_test lp + run_dump_test j + run_dump_test jl + run_dump_test add + run_dump_test asl + # FIXME: ??? `lsl' gets dumped as `asl' + # run_dump_test lsl + run_dump_test adc + run_dump_test rlc + run_dump_test sub + run_dump_test sbc + run_dump_test and + run_dump_test mov + run_dump_test or + run_dump_test bic + run_dump_test xor + run_dump_test nop } -# Run the tests. - +# ARC library extensions if [istarget arc*-*-*] then { - - test_template_insn base math adc 9 - test_template_insn base math add 8 - test_template_insn base math and 12 - test_template_insn base math bic 14 - test_template_insn base math or 13 - test_template_insn base math sbc 11 - test_template_insn base math sub 10 - test_template_insn base math xor 15 - - test_template_insn base alias mov 12 - test_template_insn base alias rlc 9 - test_template_insn base alias asl 8 -# `lsl' gets dumped as `asl' so this must be tested elsewhere. -# test_template_insn base alias lsl 8 - - test_template_insn base sshift asr 1 - test_template_insn base sshift lsr 2 - test_template_insn base sshift ror 3 - test_template_insn base sshift rrc 4 - - test_template_insn base branch b 4 - test_template_insn base branch bl 5 - test_template_insn base branch lp 6 - - run_dump_test "j" - - test_template_insn base insn3 sexb 5 - test_template_insn base insn3 sexw 6 - test_template_insn base insn3 extb 7 - test_template_insn base insn3 extw 8 - - run_dump_test "flag" -# run_dump_test "nop" - - run_dump_test "ld" - run_dump_test "st" - + # *TODO* } diff --git a/gas/testsuite/gas/arc/asl.d b/gas/testsuite/gas/arc/asl.d new file mode 100644 index 0000000..89aea0e --- /dev/null +++ b/gas/testsuite/gas/arc/asl.d @@ -0,0 +1,68 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 82 00 40 40008200 asl r0,r1 + 4: 00 38 6e 43 436e3800 asl fp,sp + 8: 00 fe 1f 40 401ffe00 asl r0,0 + c: ff ff 3f 40 403fffff asl r1,-1 + 10: 00 04 e1 47 47e10400 asl 0,r2 + 14: 00 86 e1 47 47e18600 asl 0,r3 + 18: ff fe 9f 40 409ffeff asl r4,255 + 1c: 00 8a e2 47 47e28a00 asl 0,r5 + 20: 00 ff df 40 40dfff00 asl r6,-256 + 24: 00 8e e3 47 47e38e00 asl 0,r7 + 28: 00 7c 1f 41 411f7c00 asl r8,0x100 + 2c: 00 01 00 00 + 30: 00 7c 3f 41 413f7c00 asl r9,0xffff_feff + 34: ff fe ff ff + 38: 00 7c 7f 41 417f7c00 asl r11,0x4242_4242 + 3c: 42 42 42 42 + 40: 00 7c ff 47 47ff7c00 asl 0,0x100 + 44: 00 01 00 00 + 48: 00 7c 1f 40 401f7c00 asl r0,0 + 4c: 00 00 00 00 + 4c: R_ARC_32 foo + 50: 00 82 00 40 40008200 asl r0,r1 + 54: 00 08 62 40 40620800 asl r3,r4 + 58: 01 8e c3 40 40c38e01 asl.z r6,r7 + 5c: 01 14 25 41 41251401 asl.z r9,r10 + 60: 02 9a 86 41 41869a02 asl.nz r12,r13 + 64: 02 20 e8 41 41e82002 asl.nz r15,r16 + 68: 03 a6 49 42 4249a603 asl.p r18,r19 + 6c: 03 2c ab 42 42ab2c03 asl.p r21,r22 + 70: 04 b2 0c 43 430cb204 asl.n r24,r25 + 74: 04 38 6e 43 436e3804 asl.n fp,sp + 78: 05 be cf 43 43cfbe05 asl.c ilink2,blink + 7c: 05 44 31 44 44314405 asl.c r33,r34 + 80: 05 ca 92 44 4492ca05 asl.c r36,r37 + 84: 06 50 f4 44 44f45006 asl.nc r39,r40 + 88: 06 d6 55 45 4555d606 asl.nc r42,r43 + 8c: 06 5c b7 45 45b75c06 asl.nc r45,r46 + 90: 07 e2 18 46 4618e207 asl.v r48,r49 + 94: 07 64 39 46 46396407 asl.v r49,r50 + 98: 08 ee 3b 46 463bee08 asl.nv r49,r55 + 9c: 08 74 3d 46 463d7408 asl.nv r49,r58 + a0: 09 78 9e 47 479e7809 asl.gt lp_count,lp_count + a4: 0a 7c 1f 40 401f7c0a asl.ge r0,0 + a8: 00 00 00 00 + ac: 0c 7c df 47 47df7c0c asl.le 0,2 + b0: 02 00 00 00 + b4: 0d 86 61 40 4061860d asl.hi r3,r3 + b8: 0e 08 82 40 4082080e asl.ls r4,r4 + bc: 0f 8a a2 40 40a28a0f asl.pnz r5,r5 + c0: 00 83 00 40 40008300 asl.f r0,r1 + c4: 01 fa 5e 40 405efa01 asl.f r2,1 + c8: 00 87 e1 47 47e18700 asl.f 0,r3 + cc: 00 09 e2 47 47e20900 asl.f 0,r4 + d0: 00 7d bf 40 40bf7d00 asl.f r5,0x200 + d4: 00 02 00 00 + d8: 00 7d df 47 47df7d00 asl.f 0,0x200 + dc: 00 02 00 00 + e0: 01 83 00 40 40008301 asl.z.f r0,r1 + e4: 02 7d 3f 40 403f7d02 asl.nz.f r1,0 + e8: 00 00 00 00 diff --git a/gas/testsuite/gas/arc/asl.s b/gas/testsuite/gas/arc/asl.s new file mode 100644 index 0000000..f931458 --- /dev/null +++ b/gas/testsuite/gas/arc/asl.s @@ -0,0 +1,58 @@ +# asl test + + asl r0,r1 + asl fp,sp + + asl r0,0 + asl r1,-1 + asl 0,r2 + asl -1,r3 + asl r4,255 + asl 255,r5 + asl r6,-256 + asl -256,r7 + + asl r8,256 + asl r9,-257 + asl r11,0x42424242 + + asl 255,256 + + asl r0,foo + + asl.al r0,r1 + asl.ra r3,r4 + asl.eq r6,r7 + asl.z r9,r10 + asl.ne r12,r13 + asl.nz r15,r16 + asl.pl r18,r19 + asl.p r21,r22 + asl.mi r24,r25 + asl.n r27,r28 + asl.cs r30,r31 + asl.c r33,r34 + asl.lo r36,r37 + asl.cc r39,r40 + asl.nc r42,r43 + asl.hs r45,r46 + asl.vs r48,r49 + asl.v r49,r50 + asl.vc r49,r55 + asl.nv r49,r58 + asl.gt r60,r60 + asl.ge r0,0 + asl.le 2,2 + asl.hi r3,r3 + asl.ls r4,r4 + asl.pnz r5,r5 + + asl.f r0,r1 + asl.f r2,1 + asl.f 1,r3 + asl.f 0,r4 + asl.f r5,512 + asl.f 512,512 + + asl.eq.f r0,r1 + asl.ne.f r1,0 diff --git a/gas/testsuite/gas/arc/asr.d b/gas/testsuite/gas/arc/asr.d new file mode 100644 index 0000000..bb4c96e --- /dev/null +++ b/gas/testsuite/gas/arc/asr.d @@ -0,0 +1,51 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 82 00 18 18008200 asr r0,r1 + 4: 00 02 6e 1b 1b6e0200 asr fp,sp + 8: 00 82 1f 18 181f8200 asr r0,0 + c: ff 83 3f 18 183f83ff asr r1,-1 + 10: 00 02 e1 1f 1fe10200 asr 0,r2 + 14: 00 82 e1 1f 1fe18200 asr 0,r3 + 18: ff 82 9f 18 189f82ff asr r4,255 + 1c: 00 82 e2 1f 1fe28200 asr 0,r5 + 20: 00 83 df 18 18df8300 asr r6,-256 + 24: 00 82 e3 1f 1fe38200 asr 0,r7 + 28: 00 02 1f 19 191f0200 asr r8,0x100 + 2c: 00 01 00 00 + 30: 00 02 3f 19 193f0200 asr r9,0xffff_feff + 34: ff fe ff ff + 38: 00 02 7f 19 197f0200 asr r11,0x4242_4242 + 3c: 42 42 42 42 + 40: 00 02 ff 1f 1fff0200 asr 0,0x100 + 44: 00 01 00 00 + 48: 00 02 1f 18 181f0200 asr r0,0 + 4c: 00 00 00 00 + 4c: R_ARC_32 foo + 50: 01 82 45 19 19458201 asr.z r10,r11 + 54: 02 82 86 19 19868202 asr.nz r12,r13 + 58: 0b 02 df 19 19df020b asr.lt r14,0 + 5c: 00 00 00 00 + 60: 09 02 ff 19 19ff0209 asr.gt r15,0x200 + 64: 00 02 00 00 + 68: 00 83 00 18 18008300 asr.f r0,r1 + 6c: 01 82 5e 18 185e8201 asr.f r2,1 + 70: 00 03 e2 1f 1fe20300 asr.f 0,r4 + 74: 00 03 bf 18 18bf0300 asr.f r5,0x200 + 78: 00 02 00 00 + 7c: 00 03 df 1f 1fdf0300 asr.f 0,0x200 + 80: 00 02 00 00 + 84: 01 83 00 18 18008301 asr.z.f r0,r1 + 88: 02 03 3f 18 183f0302 asr.nz.f r1,0 + 8c: 00 00 00 00 + 90: 0b 03 c1 1f 1fc1030b asr.lt.f 0,r2 + 94: 00 00 00 00 00000000 + 98: 0c 03 1f 18 181f030c asr.le.f r0,0x200 + 9c: 00 02 00 00 + a0: 04 03 df 1f 1fdf0304 asr.n.f 0,0x200 + a4: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/asr.s b/gas/testsuite/gas/arc/asr.s new file mode 100644 index 0000000..9998b34 --- /dev/null +++ b/gas/testsuite/gas/arc/asr.s @@ -0,0 +1,38 @@ +# asr test + + asr r0,r1 + asr fp,sp + + asr r0,0 + asr r1,-1 + asr 0,r2 + asr -1,r3 + asr r4,255 + asr 255,r5 + asr r6,-256 + asr -256,r7 + + asr r8,256 + asr r9,-257 + asr r11,0x42424242 + + asr 255,256 + + asr r0,foo + + asr.eq r10,r11 + asr.ne r12,r13 + asr.lt r14,0 + asr.gt r15,512 + + asr.f r0,r1 + asr.f r2,1 + asr.f 0,r4 + asr.f r5,512 + asr.f 512,512 + + asr.eq.f r0,r1 + asr.ne.f r1,0 + asr.lt.f 0,r2 + asr.le.f r0,512 + asr.n.f 512,512 diff --git a/gas/testsuite/gas/arc/b.d b/gas/testsuite/gas/arc/b.d new file mode 100644 index 0000000..8c2eb01 --- /dev/null +++ b/gas/testsuite/gas/arc/b.d @@ -0,0 +1,76 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <text_label>: + 0: 80 ff ff 27 27ffff80 b 0 <text_label> + + 4: 00 ff ff 27 27ffff00 b 0 <text_label> + + 8: 80 fe ff 27 27fffe80 b 0 <text_label> + + c: 01 fe ff 27 27fffe01 bz 0 <text_label> + + 10: 81 fd ff 27 27fffd81 bz 0 <text_label> + + 14: 02 fd ff 27 27fffd02 bnz 0 <text_label> + + 18: 82 fc ff 27 27fffc82 bnz 0 <text_label> + + 1c: 03 fc ff 27 27fffc03 bp 0 <text_label> + + 20: 83 fb ff 27 27fffb83 bp 0 <text_label> + + 24: 04 fb ff 27 27fffb04 bn 0 <text_label> + + 28: 84 fa ff 27 27fffa84 bn 0 <text_label> + + 2c: 05 fa ff 27 27fffa05 bc 0 <text_label> + + 30: 85 f9 ff 27 27fff985 bc 0 <text_label> + + 34: 05 f9 ff 27 27fff905 bc 0 <text_label> + + 38: 86 f8 ff 27 27fff886 bnc 0 <text_label> + + 3c: 06 f8 ff 27 27fff806 bnc 0 <text_label> + + 40: 86 f7 ff 27 27fff786 bnc 0 <text_label> + + 44: 07 f7 ff 27 27fff707 bv 0 <text_label> + + 48: 87 f6 ff 27 27fff687 bv 0 <text_label> + + 4c: 08 f6 ff 27 27fff608 bnv 0 <text_label> + + 50: 88 f5 ff 27 27fff588 bnv 0 <text_label> + + 54: 09 f5 ff 27 27fff509 bgt 0 <text_label> + + 58: 8a f4 ff 27 27fff48a bge 0 <text_label> + + 5c: 0b f4 ff 27 27fff40b blt 0 <text_label> + + 60: 8c f3 ff 27 27fff38c ble 0 <text_label> + + 64: 0d f3 ff 27 27fff30d bhi 0 <text_label> + + 68: 8e f2 ff 27 27fff28e bls 0 <text_label> + + 6c: 0f f2 ff 27 27fff20f bpnz 0 <text_label> + + 70: a0 f1 ff 27 27fff1a0 b.d 0 <text_label> + + 74: 00 f1 ff 27 27fff100 b 0 <text_label> + + 78: c0 f0 ff 27 27fff0c0 b.jd 0 <text_label> + + 7c: 21 f0 ff 27 27fff021 bz.d 0 <text_label> + + 80: 82 ef ff 27 27ffef82 bnz 0 <text_label> + + 84: 46 ef ff 27 27ffef46 bnc.jd 0 <text_label> + diff --git a/gas/testsuite/gas/arc/b.s b/gas/testsuite/gas/arc/b.s new file mode 100644 index 0000000..a215fe4 --- /dev/null +++ b/gas/testsuite/gas/arc/b.s @@ -0,0 +1,40 @@ +# b test + +text_label: + + b text_label + bal text_label + bra text_label + beq text_label + bz text_label + bne text_label + bnz text_label + bpl text_label + bp text_label + bmi text_label + bn text_label + bcs text_label + bc text_label + blo text_label + bcc text_label + bnc text_label + bhs text_label + bvs text_label + bv text_label + bvc text_label + bnv text_label + bgt text_label + bge text_label + blt text_label + ble text_label + bhi text_label + bls text_label + bpnz text_label + + b.d text_label + b.nd text_label + b.jd text_label + + beq.d text_label + bne.nd text_label + bcc.jd text_label diff --git a/gas/testsuite/gas/arc/bic.d b/gas/testsuite/gas/arc/bic.d new file mode 100644 index 0000000..5b2a233 --- /dev/null +++ b/gas/testsuite/gas/arc/bic.d @@ -0,0 +1,85 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 84 00 70 70008400 bic r0,r1,r2 + 4: 00 b8 4d 73 734db800 bic gp,fp,sp + 8: 00 3e af 73 73af3e00 bic ilink1,ilink2,blink + c: 00 f8 1d 77 771df800 bic r56,r59,lp_count + 10: 00 fe 00 70 7000fe00 bic r0,r1,0 + 14: 00 84 1f 70 701f8400 bic r0,0,r2 + 18: 00 84 e0 77 77e08400 bic 0,r1,r2 + 1c: ff ff 00 70 7000ffff bic r0,r1,-1 + 20: ff 85 1f 70 701f85ff bic r0,-1,r2 + 24: 00 84 e0 77 77e08400 bic 0,r1,r2 + 28: ff fe 00 70 7000feff bic r0,r1,255 + 2c: ff 84 1f 70 701f84ff bic r0,255,r2 + 30: 00 84 e0 77 77e08400 bic 0,r1,r2 + 34: 00 ff 00 70 7000ff00 bic r0,r1,-256 + 38: 00 85 1f 70 701f8500 bic r0,-256,r2 + 3c: 00 84 e0 77 77e08400 bic 0,r1,r2 + 40: 00 fc 00 70 7000fc00 bic r0,r1,0x100 + 44: 00 01 00 00 + 48: 00 04 1f 70 701f0400 bic r0,0xffff_feff,r2 + 4c: ff fe ff ff + 50: ff fc 1f 70 701ffcff bic r0,255,0x100 + 54: 00 01 00 00 + 58: ff 7e 1f 70 701f7eff bic r0,0x100,255 + 5c: 00 01 00 00 + 60: 00 fc 00 70 7000fc00 bic r0,r1,0 + 64: 00 00 00 00 + 64: R_ARC_32 foo + 68: 00 84 00 70 70008400 bic r0,r1,r2 + 6c: 00 0a 62 70 70620a00 bic r3,r4,r5 + 70: 01 90 c3 70 70c39001 bic.z r6,r7,r8 + 74: 01 16 25 71 71251601 bic.z r9,r10,r11 + 78: 02 9c 86 71 71869c02 bic.nz r12,r13,r14 + 7c: 02 22 e8 71 71e82202 bic.nz r15,r16,r17 + 80: 03 a8 49 72 7249a803 bic.p r18,r19,r20 + 84: 03 2e ab 72 72ab2e03 bic.p r21,r22,r23 + 88: 04 b4 0c 73 730cb404 bic.n r24,r25,gp + 8c: 04 3a 6e 73 736e3a04 bic.n fp,sp,ilink1 + 90: 05 c0 cf 73 73cfc005 bic.c ilink2,blink,r32 + 94: 05 46 31 74 74314605 bic.c r33,r34,r35 + 98: 05 cc 92 74 7492cc05 bic.c r36,r37,r38 + 9c: 06 52 f4 74 74f45206 bic.nc r39,r40,r41 + a0: 06 d8 55 75 7555d806 bic.nc r42,r43,r44 + a4: 06 5e b7 75 75b75e06 bic.nc r45,r46,r47 + a8: 07 e4 18 76 7618e407 bic.v r48,r49,r50 + ac: 07 6a 1a 77 771a6a07 bic.v r56,r52,r53 + b0: 08 f0 1b 77 771bf008 bic.nv r56,r55,r56 + b4: 08 76 1d 77 771d7608 bic.nv r56,r58,r59 + b8: 09 00 9e 77 779e0009 bic.gt lp_count,lp_count,r0 + bc: 0a 7c 00 70 70007c0a bic.ge r0,r0,0 + c0: 00 00 00 00 + c4: 0b 02 3f 70 703f020b bic.lt r1,1,r1 + c8: 01 00 00 00 + cc: 0d 06 7f 70 707f060d bic.hi r3,3,r3 + d0: 03 00 00 00 + d4: 0e 08 df 77 77df080e bic.ls 0,4,r4 + d8: 04 00 00 00 + dc: 0f fc c2 77 77c2fc0f bic.pnz 0,r5,5 + e0: 05 00 00 00 + e4: 00 85 00 70 70008500 bic.f r0,r1,r2 + e8: 01 fa 00 70 7000fa01 bic.f r0,r1,1 + ec: 01 84 1e 70 701e8401 bic.f r0,1,r2 + f0: 00 85 e0 77 77e08500 bic.f 0,r1,r2 + f4: 00 fd 00 70 7000fd00 bic.f r0,r1,0x200 + f8: 00 02 00 00 + fc: 00 05 1f 70 701f0500 bic.f r0,0x200,r2 + 100: 00 02 00 00 + 104: 01 85 00 70 70008501 bic.z.f r0,r1,r2 + 108: 02 fd 00 70 7000fd02 bic.nz.f r0,r1,0 + 10c: 00 00 00 00 + 110: 0b 05 1f 70 701f050b bic.lt.f r0,0,r2 + 114: 00 00 00 00 + 118: 09 85 c0 77 77c08509 bic.gt.f 0,r1,r2 + 11c: 00 00 00 00 00000000 + 120: 0c fd 00 70 7000fd0c bic.le.f r0,r1,0x200 + 124: 00 02 00 00 + 128: 0a 05 1f 70 701f050a bic.ge.f r0,0x200,r2 + 12c: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/bic.s b/gas/testsuite/gas/arc/bic.s new file mode 100644 index 0000000..fc5eb19 --- /dev/null +++ b/gas/testsuite/gas/arc/bic.s @@ -0,0 +1,68 @@ +# bic test + + bic r0,r1,r2 + bic r26,fp,sp + bic ilink1,ilink2,blink + bic r56,r59,lp_count + + bic r0,r1,0 + bic r0,0,r2 + bic 0,r1,r2 + bic r0,r1,-1 + bic r0,-1,r2 + bic -1,r1,r2 + bic r0,r1,255 + bic r0,255,r2 + bic 255,r1,r2 + bic r0,r1,-256 + bic r0,-256,r2 + bic -256,r1,r2 + + bic r0,r1,256 + bic r0,-257,r2 + + bic r0,255,256 + bic r0,256,255 + + bic r0,r1,foo + + bic.al r0,r1,r2 + bic.ra r3,r4,r5 + bic.eq r6,r7,r8 + bic.z r9,r10,r11 + bic.ne r12,r13,r14 + bic.nz r15,r16,r17 + bic.pl r18,r19,r20 + bic.p r21,r22,r23 + bic.mi r24,r25,r26 + bic.n r27,r28,r29 + bic.cs r30,r31,r32 + bic.c r33,r34,r35 + bic.lo r36,r37,r38 + bic.cc r39,r40,r41 + bic.nc r42,r43,r44 + bic.hs r45,r46,r47 + bic.vs r48,r49,r50 + bic.v r56,r52,r53 + bic.vc r56,r55,r56 + bic.nv r56,r58,r59 + bic.gt r60,r60,r0 + bic.ge r0,r0,0 + bic.lt r1,1,r1 + bic.hi r3,3,r3 + bic.ls 4,4,r4 + bic.pnz 5,r5,5 + + bic.f r0,r1,r2 + bic.f r0,r1,1 + bic.f r0,1,r2 + bic.f 0,r1,r2 + bic.f r0,r1,512 + bic.f r0,512,r2 + + bic.eq.f r0,r1,r2 + bic.ne.f r0,r1,0 + bic.lt.f r0,0,r2 + bic.gt.f 0,r1,r2 + bic.le.f r0,r1,512 + bic.ge.f r0,512,r2 diff --git a/gas/testsuite/gas/arc/bl.d b/gas/testsuite/gas/arc/bl.d new file mode 100644 index 0000000..0cc19db --- /dev/null +++ b/gas/testsuite/gas/arc/bl.d @@ -0,0 +1,76 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <text_label>: + 0: 80 ff ff 2f 2fffff80 bl 0 <text_label> + + 4: 00 ff ff 2f 2fffff00 bl 0 <text_label> + + 8: 80 fe ff 2f 2ffffe80 bl 0 <text_label> + + c: 01 fe ff 2f 2ffffe01 blz 0 <text_label> + + 10: 81 fd ff 2f 2ffffd81 blz 0 <text_label> + + 14: 02 fd ff 2f 2ffffd02 blnz 0 <text_label> + + 18: 82 fc ff 2f 2ffffc82 blnz 0 <text_label> + + 1c: 03 fc ff 2f 2ffffc03 blp 0 <text_label> + + 20: 83 fb ff 2f 2ffffb83 blp 0 <text_label> + + 24: 04 fb ff 2f 2ffffb04 bln 0 <text_label> + + 28: 84 fa ff 2f 2ffffa84 bln 0 <text_label> + + 2c: 05 fa ff 2f 2ffffa05 blc 0 <text_label> + + 30: 85 f9 ff 2f 2ffff985 blc 0 <text_label> + + 34: 05 f9 ff 2f 2ffff905 blc 0 <text_label> + + 38: 86 f8 ff 2f 2ffff886 blnc 0 <text_label> + + 3c: 06 f8 ff 2f 2ffff806 blnc 0 <text_label> + + 40: 86 f7 ff 2f 2ffff786 blnc 0 <text_label> + + 44: 07 f7 ff 2f 2ffff707 blv 0 <text_label> + + 48: 87 f6 ff 2f 2ffff687 blv 0 <text_label> + + 4c: 08 f6 ff 2f 2ffff608 blnv 0 <text_label> + + 50: 88 f5 ff 2f 2ffff588 blnv 0 <text_label> + + 54: 09 f5 ff 2f 2ffff509 blgt 0 <text_label> + + 58: 8a f4 ff 2f 2ffff48a blge 0 <text_label> + + 5c: 0b f4 ff 2f 2ffff40b bllt 0 <text_label> + + 60: 8c f3 ff 2f 2ffff38c blle 0 <text_label> + + 64: 0d f3 ff 2f 2ffff30d blhi 0 <text_label> + + 68: 8e f2 ff 2f 2ffff28e blls 0 <text_label> + + 6c: 0f f2 ff 2f 2ffff20f blpnz 0 <text_label> + + 70: a0 f1 ff 2f 2ffff1a0 bl.d 0 <text_label> + + 74: 00 f1 ff 2f 2ffff100 bl 0 <text_label> + + 78: c0 f0 ff 2f 2ffff0c0 bl.jd 0 <text_label> + + 7c: 21 f0 ff 2f 2ffff021 blz.d 0 <text_label> + + 80: 82 ef ff 2f 2fffef82 blnz 0 <text_label> + + 84: 46 ef ff 2f 2fffef46 blnc.jd 0 <text_label> + diff --git a/gas/testsuite/gas/arc/bl.s b/gas/testsuite/gas/arc/bl.s new file mode 100644 index 0000000..8181f39 --- /dev/null +++ b/gas/testsuite/gas/arc/bl.s @@ -0,0 +1,40 @@ +# bl test + +text_label: + + bl text_label + blal text_label + blra text_label + bleq text_label + blz text_label + blne text_label + blnz text_label + blpl text_label + blp text_label + blmi text_label + bln text_label + blcs text_label + blc text_label + bllo text_label + blcc text_label + blnc text_label + blhs text_label + blvs text_label + blv text_label + blvc text_label + blnv text_label + blgt text_label + blge text_label + bllt text_label + blle text_label + blhi text_label + blls text_label + blpnz text_label + + bl.d text_label + bl.nd text_label + bl.jd text_label + + bleq.d text_label + blne.nd text_label + blcc.jd text_label diff --git a/gas/testsuite/gas/arc/brk.d b/gas/testsuite/gas/arc/brk.d new file mode 100644 index 0000000..70f9e4f --- /dev/null +++ b/gas/testsuite/gas/arc/brk.d @@ -0,0 +1,11 @@ +#as: -EL -marc7 +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <main>: + 0: 00 84 00 40 40008400 add r0,r1,r2 + 4: 00 fe ff 1f 1ffffe00 brk + 8: 00 0a 62 50 50620a00 sub r3,r4,r5 diff --git a/gas/testsuite/gas/arc/brk.s b/gas/testsuite/gas/arc/brk.s new file mode 100644 index 0000000..00b0761 --- /dev/null +++ b/gas/testsuite/gas/arc/brk.s @@ -0,0 +1,7 @@ +# brk test + +main: + + add r0,r1,r2 + brk + sub r3,r4,r5 diff --git a/gas/testsuite/gas/arc/extb.d b/gas/testsuite/gas/arc/extb.d new file mode 100644 index 0000000..1ceca8a --- /dev/null +++ b/gas/testsuite/gas/arc/extb.d @@ -0,0 +1,51 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 8e 00 18 18008e00 extb r0,r1 + 4: 00 0e 6e 1b 1b6e0e00 extb fp,sp + 8: 00 8e 1f 18 181f8e00 extb r0,0 + c: ff 8f 3f 18 183f8fff extb r1,-1 + 10: 00 0e e1 1f 1fe10e00 extb 0,r2 + 14: 00 8e e1 1f 1fe18e00 extb 0,r3 + 18: ff 8e 9f 18 189f8eff extb r4,255 + 1c: 00 8e e2 1f 1fe28e00 extb 0,r5 + 20: 00 8f df 18 18df8f00 extb r6,-256 + 24: 00 8e e3 1f 1fe38e00 extb 0,r7 + 28: 00 0e 1f 19 191f0e00 extb r8,0x100 + 2c: 00 01 00 00 + 30: 00 0e 3f 19 193f0e00 extb r9,0xffff_feff + 34: ff fe ff ff + 38: 00 0e 7f 19 197f0e00 extb r11,0x4242_4242 + 3c: 42 42 42 42 + 40: 00 0e ff 1f 1fff0e00 extb 0,0x100 + 44: 00 01 00 00 + 48: 00 0e 1f 18 181f0e00 extb r0,0 + 4c: 00 00 00 00 + 4c: R_ARC_32 foo + 50: 01 8e 45 19 19458e01 extb.z r10,r11 + 54: 02 8e 86 19 19868e02 extb.nz r12,r13 + 58: 0b 0e df 19 19df0e0b extb.lt r14,0 + 5c: 00 00 00 00 + 60: 09 0e ff 19 19ff0e09 extb.gt r15,0x200 + 64: 00 02 00 00 + 68: 00 8f 00 18 18008f00 extb.f r0,r1 + 6c: 01 8e 5e 18 185e8e01 extb.f r2,1 + 70: 00 0f e2 1f 1fe20f00 extb.f 0,r4 + 74: 00 0f bf 18 18bf0f00 extb.f r5,0x200 + 78: 00 02 00 00 + 7c: 00 0f df 1f 1fdf0f00 extb.f 0,0x200 + 80: 00 02 00 00 + 84: 01 8f 00 18 18008f01 extb.z.f r0,r1 + 88: 02 0f 3f 18 183f0f02 extb.nz.f r1,0 + 8c: 00 00 00 00 + 90: 0b 0f c1 1f 1fc10f0b extb.lt.f 0,r2 + 94: 00 00 00 00 00000000 + 98: 0c 0f 1f 18 181f0f0c extb.le.f r0,0x200 + 9c: 00 02 00 00 + a0: 04 0f df 1f 1fdf0f04 extb.n.f 0,0x200 + a4: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/extb.s b/gas/testsuite/gas/arc/extb.s new file mode 100644 index 0000000..e872975 --- /dev/null +++ b/gas/testsuite/gas/arc/extb.s @@ -0,0 +1,38 @@ +# extb test + + extb r0,r1 + extb fp,sp + + extb r0,0 + extb r1,-1 + extb 0,r2 + extb -1,r3 + extb r4,255 + extb 255,r5 + extb r6,-256 + extb -256,r7 + + extb r8,256 + extb r9,-257 + extb r11,0x42424242 + + extb 255,256 + + extb r0,foo + + extb.eq r10,r11 + extb.ne r12,r13 + extb.lt r14,0 + extb.gt r15,512 + + extb.f r0,r1 + extb.f r2,1 + extb.f 0,r4 + extb.f r5,512 + extb.f 512,512 + + extb.eq.f r0,r1 + extb.ne.f r1,0 + extb.lt.f 0,r2 + extb.le.f r0,512 + extb.n.f 512,512 diff --git a/gas/testsuite/gas/arc/extw.d b/gas/testsuite/gas/arc/extw.d new file mode 100644 index 0000000..500f2fa --- /dev/null +++ b/gas/testsuite/gas/arc/extw.d @@ -0,0 +1,51 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 90 00 18 18009000 extw r0,r1 + 4: 00 10 6e 1b 1b6e1000 extw fp,sp + 8: 00 90 1f 18 181f9000 extw r0,0 + c: ff 91 3f 18 183f91ff extw r1,-1 + 10: 00 10 e1 1f 1fe11000 extw 0,r2 + 14: 00 90 e1 1f 1fe19000 extw 0,r3 + 18: ff 90 9f 18 189f90ff extw r4,255 + 1c: 00 90 e2 1f 1fe29000 extw 0,r5 + 20: 00 91 df 18 18df9100 extw r6,-256 + 24: 00 90 e3 1f 1fe39000 extw 0,r7 + 28: 00 10 1f 19 191f1000 extw r8,0x100 + 2c: 00 01 00 00 + 30: 00 10 3f 19 193f1000 extw r9,0xffff_feff + 34: ff fe ff ff + 38: 00 10 7f 19 197f1000 extw r11,0x4242_4242 + 3c: 42 42 42 42 + 40: 00 10 ff 1f 1fff1000 extw 0,0x100 + 44: 00 01 00 00 + 48: 00 10 1f 18 181f1000 extw r0,0 + 4c: 00 00 00 00 + 4c: R_ARC_32 foo + 50: 01 90 45 19 19459001 extw.z r10,r11 + 54: 02 90 86 19 19869002 extw.nz r12,r13 + 58: 0b 10 df 19 19df100b extw.lt r14,0 + 5c: 00 00 00 00 + 60: 09 10 ff 19 19ff1009 extw.gt r15,0x200 + 64: 00 02 00 00 + 68: 00 91 00 18 18009100 extw.f r0,r1 + 6c: 01 90 5e 18 185e9001 extw.f r2,1 + 70: 00 11 e2 1f 1fe21100 extw.f 0,r4 + 74: 00 11 bf 18 18bf1100 extw.f r5,0x200 + 78: 00 02 00 00 + 7c: 00 11 df 1f 1fdf1100 extw.f 0,0x200 + 80: 00 02 00 00 + 84: 01 91 00 18 18009101 extw.z.f r0,r1 + 88: 02 11 3f 18 183f1102 extw.nz.f r1,0 + 8c: 00 00 00 00 + 90: 0b 11 c1 1f 1fc1110b extw.lt.f 0,r2 + 94: 00 00 00 00 00000000 + 98: 0c 11 1f 18 181f110c extw.le.f r0,0x200 + 9c: 00 02 00 00 + a0: 04 11 df 1f 1fdf1104 extw.n.f 0,0x200 + a4: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/extw.s b/gas/testsuite/gas/arc/extw.s new file mode 100644 index 0000000..060a8e3 --- /dev/null +++ b/gas/testsuite/gas/arc/extw.s @@ -0,0 +1,38 @@ +# extw test + + extw r0,r1 + extw fp,sp + + extw r0,0 + extw r1,-1 + extw 0,r2 + extw -1,r3 + extw r4,255 + extw 255,r5 + extw r6,-256 + extw -256,r7 + + extw r8,256 + extw r9,-257 + extw r11,0x42424242 + + extw 255,256 + + extw r0,foo + + extw.eq r10,r11 + extw.ne r12,r13 + extw.lt r14,0 + extw.gt r15,512 + + extw.f r0,r1 + extw.f r2,1 + extw.f 0,r4 + extw.f r5,512 + extw.f 512,512 + + extw.eq.f r0,r1 + extw.ne.f r1,0 + extw.lt.f 0,r2 + extw.le.f r0,512 + extw.n.f 512,512 diff --git a/gas/testsuite/gas/arc/flag.d b/gas/testsuite/gas/arc/flag.d index 68f36d3..55c59de 100644 --- a/gas/testsuite/gas/arc/flag.d +++ b/gas/testsuite/gas/arc/flag.d @@ -1,29 +1,38 @@ -#objdump: -dr -#name: flag - -# Test the flag macro. +#as: -EL +#objdump: -dr -EL .*: +file format elf32-.*arc -No symbols in "a.out". Disassembly of section .text: -00000000 1fa00000 flag r0 -00000004 1fbf8001 flag 1 -00000008 1fbf8002 flag 2 -0000000c 1fbf8004 flag 4 -00000010 1fbf8008 flag 8 -00000014 1fbf8010 flag 16 -00000018 1fbf8020 flag 32 -0000001c 1fbf8040 flag 64 -00000020 1fbf8080 flag 128 -00000024 1fbf0000 flag -2147483647 -0000002c 1fa0000b flag.lt r0 -00000030 1fbf0009 flag.gt 1 -00000038 1fbf0009 flag.gt 2 -00000040 1fbf0009 flag.gt 4 -00000048 1fbf0009 flag.gt 8 -00000050 1fbf0009 flag.gt 16 -00000058 1fbf0009 flag.gt 32 -00000060 1fbf0009 flag.gt 64 -00000068 1fbf0009 flag.gt 128 -00000070 1fbf000a flag.ge -2147483647 + +00000000 <.text>: + 0: 00 00 a0 1f 1fa00000 flag r0 + 4: 01 80 bf 1f 1fbf8001 flag 1 + 8: 02 80 bf 1f 1fbf8002 flag 2 + c: 04 80 bf 1f 1fbf8004 flag 4 + 10: 08 80 bf 1f 1fbf8008 flag 8 + 14: 10 80 bf 1f 1fbf8010 flag 16 + 18: 20 80 bf 1f 1fbf8020 flag 32 + 1c: 40 80 bf 1f 1fbf8040 flag 64 + 20: 80 80 bf 1f 1fbf8080 flag 128 + 24: 00 00 bf 1f 1fbf0000 flag 0x8000_0001 + 28: 01 00 00 80 + 2c: 0b 00 a0 1f 1fa0000b flag.lt r0 + 30: 09 00 bf 1f 1fbf0009 flag.gt 1 + 34: 01 00 00 00 + 38: 09 00 bf 1f 1fbf0009 flag.gt 2 + 3c: 02 00 00 00 + 40: 09 00 bf 1f 1fbf0009 flag.gt 4 + 44: 04 00 00 00 + 48: 09 00 bf 1f 1fbf0009 flag.gt 8 + 4c: 08 00 00 00 + 50: 09 00 bf 1f 1fbf0009 flag.gt 16 + 54: 10 00 00 00 + 58: 09 00 bf 1f 1fbf0009 flag.gt 32 + 5c: 20 00 00 00 + 60: 09 00 bf 1f 1fbf0009 flag.gt 64 + 64: 40 00 00 00 + 68: 09 00 bf 1f 1fbf0009 flag.gt 128 + 6c: 80 00 00 00 + 70: 0a 00 bf 1f 1fbf000a flag.ge 0x8000_0001 + 74: 01 00 00 80 diff --git a/gas/testsuite/gas/arc/j.d b/gas/testsuite/gas/arc/j.d index af103f0..87e8004 100644 --- a/gas/testsuite/gas/arc/j.d +++ b/gas/testsuite/gas/arc/j.d @@ -1,75 +1,127 @@ -#objdump: -dr -#name: j - -# Test the j insn. +#as: -EL +#objdump: -dr -EL .*: +file format elf32-.*arc Disassembly of section .text: -00000000 <text_label> 38000000 j r0 -00000004 <text_label\+4> 38000020 j.d r0 -00000008 <text_label\+8> 38000040 j.jd r0 -0000000c <text_label\+c> 38000000 j r0 -00000010 <text_label\+10> 38008000 j r1 -00000014 <text_label\+14> 38008020 j.d r1 -00000018 <text_label\+18> 38008040 j.jd r1 -0000001c <text_label\+1c> 38008000 j r1 -00000020 <text_label\+20> 381f0000 j 0 - RELOC: 00000024 R_ARC_32 .text -00000028 <text_label\+28> 381f0000 j 0 - RELOC: 0000002c R_ARC_32 .text -00000030 <text_label\+30> 381f0000 j 0 - RELOC: 00000034 R_ARC_32 .text -00000038 <text_label\+38> 381f0001 jeq 0 - RELOC: 0000003c R_ARC_32 .text -00000040 <text_label\+40> 381f0001 jeq 0 - RELOC: 00000044 R_ARC_32 .text -00000048 <text_label\+48> 381f0002 jne 0 - RELOC: 0000004c R_ARC_32 .text -00000050 <text_label\+50> 381f0002 jne 0 - RELOC: 00000054 R_ARC_32 .text -00000058 <text_label\+58> 381f0003 jp 0 - RELOC: 0000005c R_ARC_32 .text -00000060 <text_label\+60> 381f0003 jp 0 - RELOC: 00000064 R_ARC_32 .text -00000068 <text_label\+68> 381f0004 jn 0 - RELOC: 0000006c R_ARC_32 .text -00000070 <text_label\+70> 381f0004 jn 0 - RELOC: 00000074 R_ARC_32 .text -00000078 <text_label\+78> 381f0005 jc 0 - RELOC: 0000007c R_ARC_32 .text -00000080 <text_label\+80> 381f0005 jc 0 - RELOC: 00000084 R_ARC_32 .text -00000088 <text_label\+88> 381f0005 jc 0 - RELOC: 0000008c R_ARC_32 .text -00000090 <text_label\+90> 381f0006 jnc 0 - RELOC: 00000094 R_ARC_32 .text -00000098 <text_label\+98> 381f0006 jnc 0 - RELOC: 0000009c R_ARC_32 .text -000000a0 <text_label\+a0> 381f0006 jnc 0 - RELOC: 000000a4 R_ARC_32 .text -000000a8 <text_label\+a8> 381f0007 jv 0 - RELOC: 000000ac R_ARC_32 .text -000000b0 <text_label\+b0> 381f0007 jv 0 - RELOC: 000000b4 R_ARC_32 .text -000000b8 <text_label\+b8> 381f0008 jnv 0 - RELOC: 000000bc R_ARC_32 .text -000000c0 <text_label\+c0> 381f0008 jnv 0 - RELOC: 000000c4 R_ARC_32 .text -000000c8 <text_label\+c8> 381f0009 jgt 0 - RELOC: 000000cc R_ARC_32 .text -000000d0 <text_label\+d0> 381f000a jge 0 - RELOC: 000000d4 R_ARC_32 .text -000000d8 <text_label\+d8> 381f000b jlt 0 - RELOC: 000000dc R_ARC_32 .text -000000e0 <text_label\+e0> 381f000c jle 0 - RELOC: 000000e4 R_ARC_32 .text -000000e8 <text_label\+e8> 381f000d jhi 0 - RELOC: 000000ec R_ARC_32 .text -000000f0 <text_label\+f0> 381f000e jls 0 - RELOC: 000000f4 R_ARC_32 .text -000000f8 <text_label\+f8> 381f000f jpnz 0 - RELOC: 000000fc R_ARC_32 .text -00000100 <text_label\+100> 381f0000 j 0 - RELOC: 00000104 R_ARC_32 external_text_label -00000108 <text_label\+108> 381f0000 j 0 + +00000000 <text_label>: + 0: 00 00 1f 38 381f0000 j 0 <text_label> + + 4: 00 00 00 00 + 4: R_ARC_B26 .text + 8: 00 00 1f 38 381f0000 j 0 <text_label> + + c: 00 00 00 00 + c: R_ARC_B26 .text + 10: 00 00 1f 38 381f0000 j 0 <text_label> + + 14: 00 00 00 00 + 14: R_ARC_B26 .text + 18: 01 00 1f 38 381f0001 jz 0 <text_label> + + 1c: 00 00 00 00 + 1c: R_ARC_B26 .text + 20: 01 00 1f 38 381f0001 jz 0 <text_label> + + 24: 00 00 00 00 + 24: R_ARC_B26 .text + 28: 02 00 1f 38 381f0002 jnz 0 <text_label> + + 2c: 00 00 00 00 + 2c: R_ARC_B26 .text + 30: 02 00 1f 38 381f0002 jnz 0 <text_label> + + 34: 00 00 00 00 + 34: R_ARC_B26 .text + 38: 03 00 1f 38 381f0003 jp 0 <text_label> + + 3c: 00 00 00 00 + 3c: R_ARC_B26 .text + 40: 03 00 1f 38 381f0003 jp 0 <text_label> + + 44: 00 00 00 00 + 44: R_ARC_B26 .text + 48: 04 00 1f 38 381f0004 jn 0 <text_label> + + 4c: 00 00 00 00 + 4c: R_ARC_B26 .text + 50: 04 00 1f 38 381f0004 jn 0 <text_label> + + 54: 00 00 00 00 + 54: R_ARC_B26 .text + 58: 05 00 1f 38 381f0005 jc 0 <text_label> + + 5c: 00 00 00 00 + 5c: R_ARC_B26 .text + 60: 05 00 1f 38 381f0005 jc 0 <text_label> + + 64: 00 00 00 00 + 64: R_ARC_B26 .text + 68: 05 00 1f 38 381f0005 jc 0 <text_label> + + 6c: 00 00 00 00 + 6c: R_ARC_B26 .text + 70: 06 00 1f 38 381f0006 jnc 0 <text_label> + + 74: 00 00 00 00 + 74: R_ARC_B26 .text + 78: 06 00 1f 38 381f0006 jnc 0 <text_label> + + 7c: 00 00 00 00 + 7c: R_ARC_B26 .text + 80: 06 00 1f 38 381f0006 jnc 0 <text_label> + + 84: 00 00 00 00 + 84: R_ARC_B26 .text + 88: 07 00 1f 38 381f0007 jv 0 <text_label> + + 8c: 00 00 00 00 + 8c: R_ARC_B26 .text + 90: 07 00 1f 38 381f0007 jv 0 <text_label> + + 94: 00 00 00 00 + 94: R_ARC_B26 .text + 98: 08 00 1f 38 381f0008 jnv 0 <text_label> + + 9c: 00 00 00 00 + 9c: R_ARC_B26 .text + a0: 08 00 1f 38 381f0008 jnv 0 <text_label> + + a4: 00 00 00 00 + a4: R_ARC_B26 .text + a8: 09 00 1f 38 381f0009 jgt 0 <text_label> + + ac: 00 00 00 00 + ac: R_ARC_B26 .text + b0: 0a 00 1f 38 381f000a jge 0 <text_label> + + b4: 00 00 00 00 + b4: R_ARC_B26 .text + b8: 0b 00 1f 38 381f000b jlt 0 <text_label> + + bc: 00 00 00 00 + bc: R_ARC_B26 .text + c0: 0c 00 1f 38 381f000c jle 0 <text_label> + + c4: 00 00 00 00 + c4: R_ARC_B26 .text + c8: 0d 00 1f 38 381f000d jhi 0 <text_label> + + cc: 00 00 00 00 + cc: R_ARC_B26 .text + d0: 0e 00 1f 38 381f000e jls 0 <text_label> + + d4: 00 00 00 00 + d4: R_ARC_B26 .text + d8: 0f 00 1f 38 381f000f jpnz 0 <text_label> + + dc: 00 00 00 00 + dc: R_ARC_B26 .text + e0: 00 00 1f 38 381f0000 j 0 <text_label> + + e4: 00 00 00 00 + e4: R_ARC_B26 external_text_label + e8: 00 00 1f 38 381f0000 j 0 <text_label> + + ec: 00 00 00 00 diff --git a/gas/testsuite/gas/arc/j.s b/gas/testsuite/gas/arc/j.s index 0161af2..64abbf5 100644 --- a/gas/testsuite/gas/arc/j.s +++ b/gas/testsuite/gas/arc/j.s @@ -1,15 +1,6 @@ # j test text_label: - j r0 - j.d r0 - j.jd r0 - j.nd r0 - - j.f [r1] - j.d.f [r1] - j.jd.f [r1] - j.nd.f [r1] j text_label jal text_label diff --git a/gas/testsuite/gas/arc/jl.d b/gas/testsuite/gas/arc/jl.d new file mode 100644 index 0000000..3701f9a --- /dev/null +++ b/gas/testsuite/gas/arc/jl.d @@ -0,0 +1,25 @@ +#as: -EL -marc6 +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <text_label>: + 0: 40 02 1f 38 381f0240 jl 0 <text_label> + + 4: 00 00 00 00 + 4: R_ARC_B26 .text + 8: 40 03 1f 38 381f0340 jl.f 0 <text_label> + + c: 00 00 00 00 + c: R_ARC_B26 .text + 10: 02 82 00 38 38008202 jlnz \[r1\] + 14: 40 02 1f 38 381f0240 jl 0 <text_label> + + 18: 00 00 00 00 + 18: R_ARC_B26 .text + 1c: 40 03 1f 38 381f0340 jl.f 0 <text_label> + + 20: 00 00 00 00 + 20: R_ARC_B26 .text diff --git a/gas/testsuite/gas/arc/jl.s b/gas/testsuite/gas/arc/jl.s new file mode 100644 index 0000000..74a9e20 --- /dev/null +++ b/gas/testsuite/gas/arc/jl.s @@ -0,0 +1,9 @@ +# jl test + +text_label: + + jl text_label + jl.f text_label + jlnz.nd [r1] + jlal text_label + jlal.f text_label diff --git a/gas/testsuite/gas/arc/ld.d b/gas/testsuite/gas/arc/ld.d index d6dd0a1..b989f8b 100644 --- a/gas/testsuite/gas/arc/ld.d +++ b/gas/testsuite/gas/arc/ld.d @@ -1,30 +1,13 @@ -#objdump: -dr -#name: ld/lr - -# Test the ld/lr insn. +#as: -EL +#objdump: -dr -EL .*: +file format elf32-.*arc Disassembly of section .text: -00000000 08008000 ld r0,\[r1\] -00000004 00418800 ld r2,\[r3,r4\] -00000008 08a30001 ld r5,\[r6,1\] -0000000c 08e401ff ld r7,\[r8,-1\] -00000010 092500ff ld r9,\[r10,255\] -00000014 09660100 ld r11,\[r12,-256\] -00000018 01a77c00 ld r13,\[r14,256\] -00000020 01e87c00 ld r15,\[r16,-257\] -00000028 023f3800 ld r17,\[305419896,sp\] -00000030 0a7f0000 ld r19,\[0\] - RELOC: 00000034 R_ARC_32 foo -00000038 0a9f0000 ld r20,\[4\] - RELOC: 0000003c R_ARC_32 foo -00000040 081f8400 ldb r0,\[0\] -00000044 081f8800 ldw r0,\[0\] -00000048 081f8200 ld.x r0,\[0\] -0000004c 081f9000 ld.a r0,\[0\] -00000050 081fc000 ld.di r0,\[0\] -00000054 08005600 ldb.x.a.di r0,\[r0\] -00000058 0800a000 lr r0,\[r1\] -0000005c 085fa000 lr r2,\[status\] -00000060 087f2000 lr r3,\[305419896\] + +00000000 <.text>: + 0: 00 84 00 00 00008400 ld r0,\[r1,r2\] + 4: 02 84 00 00 00008402 ldb r0,\[r1,r2\] + 8: 08 88 21 00 00218808 ld.a r1,\[r3,r4\] + c: 05 06 21 00 00210605 ldw.x r1,\[r2,r3\] + 10: 0d 88 41 00 0041880d ldw.x.a r2,\[r3,r4\] diff --git a/gas/testsuite/gas/arc/ld.s b/gas/testsuite/gas/arc/ld.s index aa26719..36edf9c 100644 --- a/gas/testsuite/gas/arc/ld.s +++ b/gas/testsuite/gas/arc/ld.s @@ -1,24 +1,7 @@ -# ld/lr test +# ld test - ld r0,[r1] - ld r2,[r3,r4] - ld r5,[r6,1] - ld r7,[r8,-1] - ld r9,[r10,255] - ld r11,[r12,-256] - ld r13,[r14,256] - ld r15,[r16,-257] - ld r17,[0x12345678,r28] - ld r19,[foo] - ld r20,[foo+4] - - ldb r0,[0] - ldw r0,[0] - ld.x r0,[0] - ld.a r0,[0] - ld.di r0,[0] - ldb.x.a.di r0,[r0] - - lr r0,[r1] - lr r2,[status] - lr r3,[0x12345678] + ld r0,[r1,r2] + ldb r0,[r1,r2] + ld.a r1,[r3,r4] + ldw.x r1,[r2,r3] + ldw.x.a r2,[r3,r4] diff --git a/gas/testsuite/gas/arc/ld2.d b/gas/testsuite/gas/arc/ld2.d new file mode 100644 index 0000000..1f1df97 --- /dev/null +++ b/gas/testsuite/gas/arc/ld2.d @@ -0,0 +1,21 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 80 00 08 08008000 ld r0,\[r1\] + 4: 01 00 a3 08 08a30001 ld r5,\[r6,1\] + 8: 00 00 7f 0a 0a7f0000 ld r19,\[0\] + c: 00 00 00 00 + c: R_ARC_32 foo + 10: 0a 10 81 08 0881100a ld.a r4,\[r2,10\] + 14: 00 00 3f 08 083f0000 ld r1,\[0x384\] + 18: 84 03 00 00 + 1c: 0f 84 41 08 0841840f ldb r2,\[r3,15\] + 20: fe 09 62 08 086209fe ldw r3,\[r4,-2\] + 24: 00 20 21 08 08212000 lr r1,\[r2\] + 28: 14 a0 3f 08 083fa014 lr r1,\[0x14\] + 2c: 00 a0 1f 08 081fa000 lr r0,\[status\] diff --git a/gas/testsuite/gas/arc/ld2.s b/gas/testsuite/gas/arc/ld2.s new file mode 100644 index 0000000..c18556a --- /dev/null +++ b/gas/testsuite/gas/arc/ld2.s @@ -0,0 +1,13 @@ +# ld/lr test + + ld r0,[r1] + ld r5,[r6,1] + ld r19,[foo] + ld.a r4,[r2,10] + ld r1,[900] + ldb r2,[r3,15] + ldw r3,[r4,-2] + + lr r1,[r2] + lr r1,[20] + lr r0,[status] diff --git a/gas/testsuite/gas/arc/lp.d b/gas/testsuite/gas/arc/lp.d new file mode 100644 index 0000000..3b1827c --- /dev/null +++ b/gas/testsuite/gas/arc/lp.d @@ -0,0 +1,76 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <text_label>: + 0: 80 ff ff 37 37ffff80 lp 0 <text_label> + + 4: 00 ff ff 37 37ffff00 lp 0 <text_label> + + 8: 80 fe ff 37 37fffe80 lp 0 <text_label> + + c: 01 fe ff 37 37fffe01 lpz 0 <text_label> + + 10: 81 fd ff 37 37fffd81 lpz 0 <text_label> + + 14: 02 fd ff 37 37fffd02 lpnz 0 <text_label> + + 18: 82 fc ff 37 37fffc82 lpnz 0 <text_label> + + 1c: 03 fc ff 37 37fffc03 lpp 0 <text_label> + + 20: 83 fb ff 37 37fffb83 lpp 0 <text_label> + + 24: 04 fb ff 37 37fffb04 lpn 0 <text_label> + + 28: 84 fa ff 37 37fffa84 lpn 0 <text_label> + + 2c: 05 fa ff 37 37fffa05 lpc 0 <text_label> + + 30: 85 f9 ff 37 37fff985 lpc 0 <text_label> + + 34: 05 f9 ff 37 37fff905 lpc 0 <text_label> + + 38: 86 f8 ff 37 37fff886 lpnc 0 <text_label> + + 3c: 06 f8 ff 37 37fff806 lpnc 0 <text_label> + + 40: 86 f7 ff 37 37fff786 lpnc 0 <text_label> + + 44: 07 f7 ff 37 37fff707 lpv 0 <text_label> + + 48: 87 f6 ff 37 37fff687 lpv 0 <text_label> + + 4c: 08 f6 ff 37 37fff608 lpnv 0 <text_label> + + 50: 88 f5 ff 37 37fff588 lpnv 0 <text_label> + + 54: 09 f5 ff 37 37fff509 lpgt 0 <text_label> + + 58: 8a f4 ff 37 37fff48a lpge 0 <text_label> + + 5c: 0b f4 ff 37 37fff40b lplt 0 <text_label> + + 60: 8c f3 ff 37 37fff38c lple 0 <text_label> + + 64: 0d f3 ff 37 37fff30d lphi 0 <text_label> + + 68: 8e f2 ff 37 37fff28e lpls 0 <text_label> + + 6c: 0f f2 ff 37 37fff20f lppnz 0 <text_label> + + 70: a0 f1 ff 37 37fff1a0 lp.d 0 <text_label> + + 74: 00 f1 ff 37 37fff100 lp 0 <text_label> + + 78: c0 f0 ff 37 37fff0c0 lp.jd 0 <text_label> + + 7c: 21 f0 ff 37 37fff021 lpz.d 0 <text_label> + + 80: 82 ef ff 37 37ffef82 lpnz 0 <text_label> + + 84: 46 ef ff 37 37ffef46 lpnc.jd 0 <text_label> + diff --git a/gas/testsuite/gas/arc/lp.s b/gas/testsuite/gas/arc/lp.s new file mode 100644 index 0000000..1913976 --- /dev/null +++ b/gas/testsuite/gas/arc/lp.s @@ -0,0 +1,40 @@ +# lp test + +text_label: + + lp text_label + lpal text_label + lpra text_label + lpeq text_label + lpz text_label + lpne text_label + lpnz text_label + lppl text_label + lpp text_label + lpmi text_label + lpn text_label + lpcs text_label + lpc text_label + lplo text_label + lpcc text_label + lpnc text_label + lphs text_label + lpvs text_label + lpv text_label + lpvc text_label + lpnv text_label + lpgt text_label + lpge text_label + lplt text_label + lple text_label + lphi text_label + lpls text_label + lppnz text_label + + lp.d text_label + lp.nd text_label + lp.jd text_label + + lpeq.d text_label + lpne.nd text_label + lpcc.jd text_label diff --git a/gas/testsuite/gas/arc/lsr.d b/gas/testsuite/gas/arc/lsr.d new file mode 100644 index 0000000..27247a2 --- /dev/null +++ b/gas/testsuite/gas/arc/lsr.d @@ -0,0 +1,51 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 84 00 18 18008400 lsr r0,r1 + 4: 00 04 6e 1b 1b6e0400 lsr fp,sp + 8: 00 84 1f 18 181f8400 lsr r0,0 + c: ff 85 3f 18 183f85ff lsr r1,-1 + 10: 00 04 e1 1f 1fe10400 lsr 0,r2 + 14: 00 84 e1 1f 1fe18400 lsr 0,r3 + 18: ff 84 9f 18 189f84ff lsr r4,255 + 1c: 00 84 e2 1f 1fe28400 lsr 0,r5 + 20: 00 85 df 18 18df8500 lsr r6,-256 + 24: 00 84 e3 1f 1fe38400 lsr 0,r7 + 28: 00 04 1f 19 191f0400 lsr r8,0x100 + 2c: 00 01 00 00 + 30: 00 04 3f 19 193f0400 lsr r9,0xffff_feff + 34: ff fe ff ff + 38: 00 04 7f 19 197f0400 lsr r11,0x4242_4242 + 3c: 42 42 42 42 + 40: 00 04 ff 1f 1fff0400 lsr 0,0x100 + 44: 00 01 00 00 + 48: 00 04 1f 18 181f0400 lsr r0,0 + 4c: 00 00 00 00 + 4c: R_ARC_32 foo + 50: 01 84 45 19 19458401 lsr.z r10,r11 + 54: 02 84 86 19 19868402 lsr.nz r12,r13 + 58: 0b 04 df 19 19df040b lsr.lt r14,0 + 5c: 00 00 00 00 + 60: 09 04 ff 19 19ff0409 lsr.gt r15,0x200 + 64: 00 02 00 00 + 68: 00 85 00 18 18008500 lsr.f r0,r1 + 6c: 01 84 5e 18 185e8401 lsr.f r2,1 + 70: 00 05 e2 1f 1fe20500 lsr.f 0,r4 + 74: 00 05 bf 18 18bf0500 lsr.f r5,0x200 + 78: 00 02 00 00 + 7c: 00 05 df 1f 1fdf0500 lsr.f 0,0x200 + 80: 00 02 00 00 + 84: 01 85 00 18 18008501 lsr.z.f r0,r1 + 88: 02 05 3f 18 183f0502 lsr.nz.f r1,0 + 8c: 00 00 00 00 + 90: 0b 05 c1 1f 1fc1050b lsr.lt.f 0,r2 + 94: 00 00 00 00 00000000 + 98: 0c 05 1f 18 181f050c lsr.le.f r0,0x200 + 9c: 00 02 00 00 + a0: 04 05 df 1f 1fdf0504 lsr.n.f 0,0x200 + a4: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/lsr.s b/gas/testsuite/gas/arc/lsr.s new file mode 100644 index 0000000..3f539d8 --- /dev/null +++ b/gas/testsuite/gas/arc/lsr.s @@ -0,0 +1,38 @@ +# lsr test + + lsr r0,r1 + lsr fp,sp + + lsr r0,0 + lsr r1,-1 + lsr 0,r2 + lsr -1,r3 + lsr r4,255 + lsr 255,r5 + lsr r6,-256 + lsr -256,r7 + + lsr r8,256 + lsr r9,-257 + lsr r11,0x42424242 + + lsr 255,256 + + lsr r0,foo + + lsr.eq r10,r11 + lsr.ne r12,r13 + lsr.lt r14,0 + lsr.gt r15,512 + + lsr.f r0,r1 + lsr.f r2,1 + lsr.f 0,r4 + lsr.f r5,512 + lsr.f 512,512 + + lsr.eq.f r0,r1 + lsr.ne.f r1,0 + lsr.lt.f 0,r2 + lsr.le.f r0,512 + lsr.n.f 512,512 diff --git a/gas/testsuite/gas/arc/mov.d b/gas/testsuite/gas/arc/mov.d new file mode 100644 index 0000000..cff11d7 --- /dev/null +++ b/gas/testsuite/gas/arc/mov.d @@ -0,0 +1,68 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 82 00 60 60008200 mov r0,r1 + 4: 00 38 6e 63 636e3800 mov fp,sp + 8: 00 fe 1f 60 601ffe00 mov r0,0 + c: ff ff 3f 60 603fffff mov r1,-1 + 10: 00 04 e1 67 67e10400 mov 0,r2 + 14: 00 86 e1 67 67e18600 mov 0,r3 + 18: ff fe 9f 60 609ffeff mov r4,255 + 1c: 00 8a e2 67 67e28a00 mov 0,r5 + 20: 00 ff df 60 60dfff00 mov r6,-256 + 24: 00 8e e3 67 67e38e00 mov 0,r7 + 28: 00 7c 1f 61 611f7c00 mov r8,0x100 + 2c: 00 01 00 00 + 30: 00 7c 3f 61 613f7c00 mov r9,0xffff_feff + 34: ff fe ff ff + 38: 00 7c 7f 61 617f7c00 mov r11,0x4242_4242 + 3c: 42 42 42 42 + 40: 00 7c ff 67 67ff7c00 mov 0,0x100 + 44: 00 01 00 00 + 48: 00 7c 1f 60 601f7c00 mov r0,0 + 4c: 00 00 00 00 + 4c: R_ARC_32 foo + 50: 00 82 00 60 60008200 mov r0,r1 + 54: 00 08 62 60 60620800 mov r3,r4 + 58: 01 8e c3 60 60c38e01 mov.z r6,r7 + 5c: 01 14 25 61 61251401 mov.z r9,r10 + 60: 02 9a 86 61 61869a02 mov.nz r12,r13 + 64: 02 20 e8 61 61e82002 mov.nz r15,r16 + 68: 03 a6 49 62 6249a603 mov.p r18,r19 + 6c: 03 2c ab 62 62ab2c03 mov.p r21,r22 + 70: 04 b2 0c 63 630cb204 mov.n r24,r25 + 74: 04 38 6e 63 636e3804 mov.n fp,sp + 78: 05 be cf 63 63cfbe05 mov.c ilink2,blink + 7c: 05 44 31 64 64314405 mov.c r33,r34 + 80: 05 ca 92 64 6492ca05 mov.c r36,r37 + 84: 06 50 f4 64 64f45006 mov.nc r39,r40 + 88: 06 d6 55 65 6555d606 mov.nc r42,r43 + 8c: 06 5c b7 65 65b75c06 mov.nc r45,r46 + 90: 07 e2 18 66 6618e207 mov.v r48,r49 + 94: 07 64 39 66 66396407 mov.v r49,r50 + 98: 08 ee 3b 66 663bee08 mov.nv r49,r55 + 9c: 08 74 3d 66 663d7408 mov.nv r49,r58 + a0: 09 78 9e 67 679e7809 mov.gt lp_count,lp_count + a4: 0a 7c 1f 60 601f7c0a mov.ge r0,0 + a8: 00 00 00 00 + ac: 0c 7c df 67 67df7c0c mov.le 0,2 + b0: 02 00 00 00 + b4: 0d 86 61 60 6061860d mov.hi r3,r3 + b8: 0e 08 82 60 6082080e mov.ls r4,r4 + bc: 0f 8a a2 60 60a28a0f mov.pnz r5,r5 + c0: 00 83 00 60 60008300 mov.f r0,r1 + c4: 01 fa 5e 60 605efa01 mov.f r2,1 + c8: 00 87 e1 67 67e18700 mov.f 0,r3 + cc: 00 09 e2 67 67e20900 mov.f 0,r4 + d0: 00 7d bf 60 60bf7d00 mov.f r5,0x200 + d4: 00 02 00 00 + d8: 00 7d df 67 67df7d00 mov.f 0,0x200 + dc: 00 02 00 00 + e0: 01 83 00 60 60008301 mov.z.f r0,r1 + e4: 02 7d 3f 60 603f7d02 mov.nz.f r1,0 + e8: 00 00 00 00 diff --git a/gas/testsuite/gas/arc/mov.s b/gas/testsuite/gas/arc/mov.s new file mode 100644 index 0000000..fdee0b7 --- /dev/null +++ b/gas/testsuite/gas/arc/mov.s @@ -0,0 +1,58 @@ +# mov test + + mov r0,r1 + mov fp,sp + + mov r0,0 + mov r1,-1 + mov 0,r2 + mov -1,r3 + mov r4,255 + mov 255,r5 + mov r6,-256 + mov -256,r7 + + mov r8,256 + mov r9,-257 + mov r11,0x42424242 + + mov 255,256 + + mov r0,foo + + mov.al r0,r1 + mov.ra r3,r4 + mov.eq r6,r7 + mov.z r9,r10 + mov.ne r12,r13 + mov.nz r15,r16 + mov.pl r18,r19 + mov.p r21,r22 + mov.mi r24,r25 + mov.n r27,r28 + mov.cs r30,r31 + mov.c r33,r34 + mov.lo r36,r37 + mov.cc r39,r40 + mov.nc r42,r43 + mov.hs r45,r46 + mov.vs r48,r49 + mov.v r49,r50 + mov.vc r49,r55 + mov.nv r49,r58 + mov.gt r60,r60 + mov.ge r0,0 + mov.le 2,2 + mov.hi r3,r3 + mov.ls r4,r4 + mov.pnz r5,r5 + + mov.f r0,r1 + mov.f r2,1 + mov.f 1,r3 + mov.f 0,r4 + mov.f r5,512 + mov.f 512,512 + + mov.eq.f r0,r1 + mov.ne.f r1,0 diff --git a/gas/testsuite/gas/arc/nop.d b/gas/testsuite/gas/arc/nop.d new file mode 100644 index 0000000..1a714cd --- /dev/null +++ b/gas/testsuite/gas/arc/nop.d @@ -0,0 +1,9 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: ff ff ff 7f 7fffffff nop diff --git a/gas/testsuite/gas/arc/nop.s b/gas/testsuite/gas/arc/nop.s new file mode 100644 index 0000000..02b2681 --- /dev/null +++ b/gas/testsuite/gas/arc/nop.s @@ -0,0 +1,3 @@ +# nop test + + nop diff --git a/gas/testsuite/gas/arc/or.d b/gas/testsuite/gas/arc/or.d new file mode 100644 index 0000000..11e6f3c --- /dev/null +++ b/gas/testsuite/gas/arc/or.d @@ -0,0 +1,85 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 84 00 68 68008400 or r0,r1,r2 + 4: 00 b8 4d 6b 6b4db800 or gp,fp,sp + 8: 00 3e af 6b 6baf3e00 or ilink1,ilink2,blink + c: 00 f8 1d 6f 6f1df800 or r56,r59,lp_count + 10: 00 fe 00 68 6800fe00 or r0,r1,0 + 14: 00 84 1f 68 681f8400 or r0,0,r2 + 18: 00 84 e0 6f 6fe08400 or 0,r1,r2 + 1c: ff ff 00 68 6800ffff or r0,r1,-1 + 20: ff 85 1f 68 681f85ff or r0,-1,r2 + 24: 00 84 e0 6f 6fe08400 or 0,r1,r2 + 28: ff fe 00 68 6800feff or r0,r1,255 + 2c: ff 84 1f 68 681f84ff or r0,255,r2 + 30: 00 84 e0 6f 6fe08400 or 0,r1,r2 + 34: 00 ff 00 68 6800ff00 or r0,r1,-256 + 38: 00 85 1f 68 681f8500 or r0,-256,r2 + 3c: 00 84 e0 6f 6fe08400 or 0,r1,r2 + 40: 00 fc 00 68 6800fc00 or r0,r1,0x100 + 44: 00 01 00 00 + 48: 00 04 1f 68 681f0400 or r0,0xffff_feff,r2 + 4c: ff fe ff ff + 50: ff fc 1f 68 681ffcff or r0,255,0x100 + 54: 00 01 00 00 + 58: ff 7e 1f 68 681f7eff or r0,0x100,255 + 5c: 00 01 00 00 + 60: 00 fc 00 68 6800fc00 or r0,r1,0 + 64: 00 00 00 00 + 64: R_ARC_32 foo + 68: 00 84 00 68 68008400 or r0,r1,r2 + 6c: 00 0a 62 68 68620a00 or r3,r4,r5 + 70: 01 90 c3 68 68c39001 or.z r6,r7,r8 + 74: 01 16 25 69 69251601 or.z r9,r10,r11 + 78: 02 9c 86 69 69869c02 or.nz r12,r13,r14 + 7c: 02 22 e8 69 69e82202 or.nz r15,r16,r17 + 80: 03 a8 49 6a 6a49a803 or.p r18,r19,r20 + 84: 03 2e ab 6a 6aab2e03 or.p r21,r22,r23 + 88: 04 b4 0c 6b 6b0cb404 or.n r24,r25,gp + 8c: 04 3a 6e 6b 6b6e3a04 or.n fp,sp,ilink1 + 90: 05 c0 cf 6b 6bcfc005 or.c ilink2,blink,r32 + 94: 05 46 31 6c 6c314605 or.c r33,r34,r35 + 98: 05 cc 92 6c 6c92cc05 or.c r36,r37,r38 + 9c: 06 52 f4 6c 6cf45206 or.nc r39,r40,r41 + a0: 06 d8 55 6d 6d55d806 or.nc r42,r43,r44 + a4: 06 5e b7 6d 6db75e06 or.nc r45,r46,r47 + a8: 07 e4 18 6e 6e18e407 or.v r48,r49,r50 + ac: 07 6a 1a 6f 6f1a6a07 or.v r56,r52,r53 + b0: 08 f0 1b 6f 6f1bf008 or.nv r56,r55,r56 + b4: 08 76 1d 6f 6f1d7608 or.nv r56,r58,r59 + b8: 09 00 9e 6f 6f9e0009 or.gt lp_count,lp_count,r0 + bc: 0a 7c 00 68 68007c0a or.ge r0,r0,0 + c0: 00 00 00 00 + c4: 0b 02 3f 68 683f020b or.lt r1,1,r1 + c8: 01 00 00 00 + cc: 0d 06 7f 68 687f060d or.hi r3,3,r3 + d0: 03 00 00 00 + d4: 0e 08 df 6f 6fdf080e or.ls 0,4,r4 + d8: 04 00 00 00 + dc: 0f fc c2 6f 6fc2fc0f or.pnz 0,r5,5 + e0: 05 00 00 00 + e4: 00 85 00 68 68008500 or.f r0,r1,r2 + e8: 01 fa 00 68 6800fa01 or.f r0,r1,1 + ec: 01 84 1e 68 681e8401 or.f r0,1,r2 + f0: 00 85 e0 6f 6fe08500 or.f 0,r1,r2 + f4: 00 fd 00 68 6800fd00 or.f r0,r1,0x200 + f8: 00 02 00 00 + fc: 00 05 1f 68 681f0500 or.f r0,0x200,r2 + 100: 00 02 00 00 + 104: 01 85 00 68 68008501 or.z.f r0,r1,r2 + 108: 02 fd 00 68 6800fd02 or.nz.f r0,r1,0 + 10c: 00 00 00 00 + 110: 0b 05 1f 68 681f050b or.lt.f r0,0,r2 + 114: 00 00 00 00 + 118: 09 85 c0 6f 6fc08509 or.gt.f 0,r1,r2 + 11c: 00 00 00 00 00000000 + 120: 0c fd 00 68 6800fd0c or.le.f r0,r1,0x200 + 124: 00 02 00 00 + 128: 0a 05 1f 68 681f050a or.ge.f r0,0x200,r2 + 12c: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/or.s b/gas/testsuite/gas/arc/or.s new file mode 100644 index 0000000..e363352 --- /dev/null +++ b/gas/testsuite/gas/arc/or.s @@ -0,0 +1,68 @@ +# or test + + or r0,r1,r2 + or r26,fp,sp + or ilink1,ilink2,blink + or r56,r59,lp_count + + or r0,r1,0 + or r0,0,r2 + or 0,r1,r2 + or r0,r1,-1 + or r0,-1,r2 + or -1,r1,r2 + or r0,r1,255 + or r0,255,r2 + or 255,r1,r2 + or r0,r1,-256 + or r0,-256,r2 + or -256,r1,r2 + + or r0,r1,256 + or r0,-257,r2 + + or r0,255,256 + or r0,256,255 + + or r0,r1,foo + + or.al r0,r1,r2 + or.ra r3,r4,r5 + or.eq r6,r7,r8 + or.z r9,r10,r11 + or.ne r12,r13,r14 + or.nz r15,r16,r17 + or.pl r18,r19,r20 + or.p r21,r22,r23 + or.mi r24,r25,r26 + or.n r27,r28,r29 + or.cs r30,r31,r32 + or.c r33,r34,r35 + or.lo r36,r37,r38 + or.cc r39,r40,r41 + or.nc r42,r43,r44 + or.hs r45,r46,r47 + or.vs r48,r49,r50 + or.v r56,r52,r53 + or.vc r56,r55,r56 + or.nv r56,r58,r59 + or.gt r60,r60,r0 + or.ge r0,r0,0 + or.lt r1,1,r1 + or.hi r3,3,r3 + or.ls 4,4,r4 + or.pnz 5,r5,5 + + or.f r0,r1,r2 + or.f r0,r1,1 + or.f r0,1,r2 + or.f 0,r1,r2 + or.f r0,r1,512 + or.f r0,512,r2 + + or.eq.f r0,r1,r2 + or.ne.f r0,r1,0 + or.lt.f r0,0,r2 + or.gt.f 0,r1,r2 + or.le.f r0,r1,512 + or.ge.f r0,512,r2 diff --git a/gas/testsuite/gas/arc/rlc.d b/gas/testsuite/gas/arc/rlc.d new file mode 100644 index 0000000..e83ddc4 --- /dev/null +++ b/gas/testsuite/gas/arc/rlc.d @@ -0,0 +1,68 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 82 00 48 48008200 rlc r0,r1 + 4: 00 38 6e 4b 4b6e3800 rlc fp,sp + 8: 00 fe 1f 48 481ffe00 rlc r0,0 + c: ff ff 3f 48 483fffff rlc r1,-1 + 10: 00 04 e1 4f 4fe10400 rlc 0,r2 + 14: 00 86 e1 4f 4fe18600 rlc 0,r3 + 18: ff fe 9f 48 489ffeff rlc r4,255 + 1c: 00 8a e2 4f 4fe28a00 rlc 0,r5 + 20: 00 ff df 48 48dfff00 rlc r6,-256 + 24: 00 8e e3 4f 4fe38e00 rlc 0,r7 + 28: 00 7c 1f 49 491f7c00 rlc r8,0x100 + 2c: 00 01 00 00 + 30: 00 7c 3f 49 493f7c00 rlc r9,0xffff_feff + 34: ff fe ff ff + 38: 00 7c 7f 49 497f7c00 rlc r11,0x4242_4242 + 3c: 42 42 42 42 + 40: 00 7c ff 4f 4fff7c00 rlc 0,0x100 + 44: 00 01 00 00 + 48: 00 7c 1f 48 481f7c00 rlc r0,0 + 4c: 00 00 00 00 + 4c: R_ARC_32 foo + 50: 00 82 00 48 48008200 rlc r0,r1 + 54: 00 08 62 48 48620800 rlc r3,r4 + 58: 01 8e c3 48 48c38e01 rlc.z r6,r7 + 5c: 01 14 25 49 49251401 rlc.z r9,r10 + 60: 02 9a 86 49 49869a02 rlc.nz r12,r13 + 64: 02 20 e8 49 49e82002 rlc.nz r15,r16 + 68: 03 a6 49 4a 4a49a603 rlc.p r18,r19 + 6c: 03 2c ab 4a 4aab2c03 rlc.p r21,r22 + 70: 04 b2 0c 4b 4b0cb204 rlc.n r24,r25 + 74: 04 38 6e 4b 4b6e3804 rlc.n fp,sp + 78: 05 be cf 4b 4bcfbe05 rlc.c ilink2,blink + 7c: 05 44 31 4c 4c314405 rlc.c r33,r34 + 80: 05 ca 92 4c 4c92ca05 rlc.c r36,r37 + 84: 06 50 f4 4c 4cf45006 rlc.nc r39,r40 + 88: 06 d6 55 4d 4d55d606 rlc.nc r42,r43 + 8c: 06 5c b7 4d 4db75c06 rlc.nc r45,r46 + 90: 07 e2 18 4e 4e18e207 rlc.v r48,r49 + 94: 07 64 39 4e 4e396407 rlc.v r49,r50 + 98: 08 ee 3b 4e 4e3bee08 rlc.nv r49,r55 + 9c: 08 74 3d 4e 4e3d7408 rlc.nv r49,r58 + a0: 09 78 9e 4f 4f9e7809 rlc.gt lp_count,lp_count + a4: 0a 7c 1f 48 481f7c0a rlc.ge r0,0 + a8: 00 00 00 00 + ac: 0c 7c df 4f 4fdf7c0c rlc.le 0,2 + b0: 02 00 00 00 + b4: 0d 86 61 48 4861860d rlc.hi r3,r3 + b8: 0e 08 82 48 4882080e rlc.ls r4,r4 + bc: 0f 8a a2 48 48a28a0f rlc.pnz r5,r5 + c0: 00 83 00 48 48008300 rlc.f r0,r1 + c4: 01 fa 5e 48 485efa01 rlc.f r2,1 + c8: 00 87 e1 4f 4fe18700 rlc.f 0,r3 + cc: 00 09 e2 4f 4fe20900 rlc.f 0,r4 + d0: 00 7d bf 48 48bf7d00 rlc.f r5,0x200 + d4: 00 02 00 00 + d8: 00 7d df 4f 4fdf7d00 rlc.f 0,0x200 + dc: 00 02 00 00 + e0: 01 83 00 48 48008301 rlc.z.f r0,r1 + e4: 02 7d 3f 48 483f7d02 rlc.nz.f r1,0 + e8: 00 00 00 00 diff --git a/gas/testsuite/gas/arc/rlc.s b/gas/testsuite/gas/arc/rlc.s new file mode 100644 index 0000000..3e5d093 --- /dev/null +++ b/gas/testsuite/gas/arc/rlc.s @@ -0,0 +1,58 @@ +# rlc test + + rlc r0,r1 + rlc fp,sp + + rlc r0,0 + rlc r1,-1 + rlc 0,r2 + rlc -1,r3 + rlc r4,255 + rlc 255,r5 + rlc r6,-256 + rlc -256,r7 + + rlc r8,256 + rlc r9,-257 + rlc r11,0x42424242 + + rlc 255,256 + + rlc r0,foo + + rlc.al r0,r1 + rlc.ra r3,r4 + rlc.eq r6,r7 + rlc.z r9,r10 + rlc.ne r12,r13 + rlc.nz r15,r16 + rlc.pl r18,r19 + rlc.p r21,r22 + rlc.mi r24,r25 + rlc.n r27,r28 + rlc.cs r30,r31 + rlc.c r33,r34 + rlc.lo r36,r37 + rlc.cc r39,r40 + rlc.nc r42,r43 + rlc.hs r45,r46 + rlc.vs r48,r49 + rlc.v r49,r50 + rlc.vc r49,r55 + rlc.nv r49,r58 + rlc.gt r60,r60 + rlc.ge r0,0 + rlc.le 2,2 + rlc.hi r3,r3 + rlc.ls r4,r4 + rlc.pnz r5,r5 + + rlc.f r0,r1 + rlc.f r2,1 + rlc.f 1,r3 + rlc.f 0,r4 + rlc.f r5,512 + rlc.f 512,512 + + rlc.eq.f r0,r1 + rlc.ne.f r1,0 diff --git a/gas/testsuite/gas/arc/ror.d b/gas/testsuite/gas/arc/ror.d new file mode 100644 index 0000000..691736b --- /dev/null +++ b/gas/testsuite/gas/arc/ror.d @@ -0,0 +1,51 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 86 00 18 18008600 ror r0,r1 + 4: 00 06 6e 1b 1b6e0600 ror fp,sp + 8: 00 86 1f 18 181f8600 ror r0,0 + c: ff 87 3f 18 183f87ff ror r1,-1 + 10: 00 06 e1 1f 1fe10600 ror 0,r2 + 14: 00 86 e1 1f 1fe18600 ror 0,r3 + 18: ff 86 9f 18 189f86ff ror r4,255 + 1c: 00 86 e2 1f 1fe28600 ror 0,r5 + 20: 00 87 df 18 18df8700 ror r6,-256 + 24: 00 86 e3 1f 1fe38600 ror 0,r7 + 28: 00 06 1f 19 191f0600 ror r8,0x100 + 2c: 00 01 00 00 + 30: 00 06 3f 19 193f0600 ror r9,0xffff_feff + 34: ff fe ff ff + 38: 00 06 7f 19 197f0600 ror r11,0x4242_4242 + 3c: 42 42 42 42 + 40: 00 06 ff 1f 1fff0600 ror 0,0x100 + 44: 00 01 00 00 + 48: 00 06 1f 18 181f0600 ror r0,0 + 4c: 00 00 00 00 + 4c: R_ARC_32 foo + 50: 01 86 45 19 19458601 ror.z r10,r11 + 54: 02 86 86 19 19868602 ror.nz r12,r13 + 58: 0b 06 df 19 19df060b ror.lt r14,0 + 5c: 00 00 00 00 + 60: 09 06 ff 19 19ff0609 ror.gt r15,0x200 + 64: 00 02 00 00 + 68: 00 87 00 18 18008700 ror.f r0,r1 + 6c: 01 86 5e 18 185e8601 ror.f r2,1 + 70: 00 07 e2 1f 1fe20700 ror.f 0,r4 + 74: 00 07 bf 18 18bf0700 ror.f r5,0x200 + 78: 00 02 00 00 + 7c: 00 07 df 1f 1fdf0700 ror.f 0,0x200 + 80: 00 02 00 00 + 84: 01 87 00 18 18008701 ror.z.f r0,r1 + 88: 02 07 3f 18 183f0702 ror.nz.f r1,0 + 8c: 00 00 00 00 + 90: 0b 07 c1 1f 1fc1070b ror.lt.f 0,r2 + 94: 00 00 00 00 00000000 + 98: 0c 07 1f 18 181f070c ror.le.f r0,0x200 + 9c: 00 02 00 00 + a0: 04 07 df 1f 1fdf0704 ror.n.f 0,0x200 + a4: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/ror.s b/gas/testsuite/gas/arc/ror.s new file mode 100644 index 0000000..de23351 --- /dev/null +++ b/gas/testsuite/gas/arc/ror.s @@ -0,0 +1,38 @@ +# ror test + + ror r0,r1 + ror fp,sp + + ror r0,0 + ror r1,-1 + ror 0,r2 + ror -1,r3 + ror r4,255 + ror 255,r5 + ror r6,-256 + ror -256,r7 + + ror r8,256 + ror r9,-257 + ror r11,0x42424242 + + ror 255,256 + + ror r0,foo + + ror.eq r10,r11 + ror.ne r12,r13 + ror.lt r14,0 + ror.gt r15,512 + + ror.f r0,r1 + ror.f r2,1 + ror.f 0,r4 + ror.f r5,512 + ror.f 512,512 + + ror.eq.f r0,r1 + ror.ne.f r1,0 + ror.lt.f 0,r2 + ror.le.f r0,512 + ror.n.f 512,512 diff --git a/gas/testsuite/gas/arc/rrc.d b/gas/testsuite/gas/arc/rrc.d new file mode 100644 index 0000000..9c702cb --- /dev/null +++ b/gas/testsuite/gas/arc/rrc.d @@ -0,0 +1,51 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 88 00 18 18008800 rrc r0,r1 + 4: 00 08 6e 1b 1b6e0800 rrc fp,sp + 8: 00 88 1f 18 181f8800 rrc r0,0 + c: ff 89 3f 18 183f89ff rrc r1,-1 + 10: 00 08 e1 1f 1fe10800 rrc 0,r2 + 14: 00 88 e1 1f 1fe18800 rrc 0,r3 + 18: ff 88 9f 18 189f88ff rrc r4,255 + 1c: 00 88 e2 1f 1fe28800 rrc 0,r5 + 20: 00 89 df 18 18df8900 rrc r6,-256 + 24: 00 88 e3 1f 1fe38800 rrc 0,r7 + 28: 00 08 1f 19 191f0800 rrc r8,0x100 + 2c: 00 01 00 00 + 30: 00 08 3f 19 193f0800 rrc r9,0xffff_feff + 34: ff fe ff ff + 38: 00 08 7f 19 197f0800 rrc r11,0x4242_4242 + 3c: 42 42 42 42 + 40: 00 08 ff 1f 1fff0800 rrc 0,0x100 + 44: 00 01 00 00 + 48: 00 08 1f 18 181f0800 rrc r0,0 + 4c: 00 00 00 00 + 4c: R_ARC_32 foo + 50: 01 88 45 19 19458801 rrc.z r10,r11 + 54: 02 88 86 19 19868802 rrc.nz r12,r13 + 58: 0b 08 df 19 19df080b rrc.lt r14,0 + 5c: 00 00 00 00 + 60: 09 08 ff 19 19ff0809 rrc.gt r15,0x200 + 64: 00 02 00 00 + 68: 00 89 00 18 18008900 rrc.f r0,r1 + 6c: 01 88 5e 18 185e8801 rrc.f r2,1 + 70: 00 09 e2 1f 1fe20900 rrc.f 0,r4 + 74: 00 09 bf 18 18bf0900 rrc.f r5,0x200 + 78: 00 02 00 00 + 7c: 00 09 df 1f 1fdf0900 rrc.f 0,0x200 + 80: 00 02 00 00 + 84: 01 89 00 18 18008901 rrc.z.f r0,r1 + 88: 02 09 3f 18 183f0902 rrc.nz.f r1,0 + 8c: 00 00 00 00 + 90: 0b 09 c1 1f 1fc1090b rrc.lt.f 0,r2 + 94: 00 00 00 00 00000000 + 98: 0c 09 1f 18 181f090c rrc.le.f r0,0x200 + 9c: 00 02 00 00 + a0: 04 09 df 1f 1fdf0904 rrc.n.f 0,0x200 + a4: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/rrc.s b/gas/testsuite/gas/arc/rrc.s new file mode 100644 index 0000000..c0e1780 --- /dev/null +++ b/gas/testsuite/gas/arc/rrc.s @@ -0,0 +1,38 @@ +# rrc test + + rrc r0,r1 + rrc fp,sp + + rrc r0,0 + rrc r1,-1 + rrc 0,r2 + rrc -1,r3 + rrc r4,255 + rrc 255,r5 + rrc r6,-256 + rrc -256,r7 + + rrc r8,256 + rrc r9,-257 + rrc r11,0x42424242 + + rrc 255,256 + + rrc r0,foo + + rrc.eq r10,r11 + rrc.ne r12,r13 + rrc.lt r14,0 + rrc.gt r15,512 + + rrc.f r0,r1 + rrc.f r2,1 + rrc.f 0,r4 + rrc.f r5,512 + rrc.f 512,512 + + rrc.eq.f r0,r1 + rrc.ne.f r1,0 + rrc.lt.f 0,r2 + rrc.le.f r0,512 + rrc.n.f 512,512 diff --git a/gas/testsuite/gas/arc/sbc.d b/gas/testsuite/gas/arc/sbc.d new file mode 100644 index 0000000..7fa0490 --- /dev/null +++ b/gas/testsuite/gas/arc/sbc.d @@ -0,0 +1,85 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 84 00 58 58008400 sbc r0,r1,r2 + 4: 00 b8 4d 5b 5b4db800 sbc gp,fp,sp + 8: 00 3e af 5b 5baf3e00 sbc ilink1,ilink2,blink + c: 00 f8 1d 5f 5f1df800 sbc r56,r59,lp_count + 10: 00 fe 00 58 5800fe00 sbc r0,r1,0 + 14: 00 84 1f 58 581f8400 sbc r0,0,r2 + 18: 00 84 e0 5f 5fe08400 sbc 0,r1,r2 + 1c: ff ff 00 58 5800ffff sbc r0,r1,-1 + 20: ff 85 1f 58 581f85ff sbc r0,-1,r2 + 24: 00 84 e0 5f 5fe08400 sbc 0,r1,r2 + 28: ff fe 00 58 5800feff sbc r0,r1,255 + 2c: ff 84 1f 58 581f84ff sbc r0,255,r2 + 30: 00 84 e0 5f 5fe08400 sbc 0,r1,r2 + 34: 00 ff 00 58 5800ff00 sbc r0,r1,-256 + 38: 00 85 1f 58 581f8500 sbc r0,-256,r2 + 3c: 00 84 e0 5f 5fe08400 sbc 0,r1,r2 + 40: 00 fc 00 58 5800fc00 sbc r0,r1,0x100 + 44: 00 01 00 00 + 48: 00 04 1f 58 581f0400 sbc r0,0xffff_feff,r2 + 4c: ff fe ff ff + 50: ff fc 1f 58 581ffcff sbc r0,255,0x100 + 54: 00 01 00 00 + 58: ff 7e 1f 58 581f7eff sbc r0,0x100,255 + 5c: 00 01 00 00 + 60: 00 fc 00 58 5800fc00 sbc r0,r1,0 + 64: 00 00 00 00 + 64: R_ARC_32 foo + 68: 00 84 00 58 58008400 sbc r0,r1,r2 + 6c: 00 0a 62 58 58620a00 sbc r3,r4,r5 + 70: 01 90 c3 58 58c39001 sbc.z r6,r7,r8 + 74: 01 16 25 59 59251601 sbc.z r9,r10,r11 + 78: 02 9c 86 59 59869c02 sbc.nz r12,r13,r14 + 7c: 02 22 e8 59 59e82202 sbc.nz r15,r16,r17 + 80: 03 a8 49 5a 5a49a803 sbc.p r18,r19,r20 + 84: 03 2e ab 5a 5aab2e03 sbc.p r21,r22,r23 + 88: 04 b4 0c 5b 5b0cb404 sbc.n r24,r25,gp + 8c: 04 3a 6e 5b 5b6e3a04 sbc.n fp,sp,ilink1 + 90: 05 c0 cf 5b 5bcfc005 sbc.c ilink2,blink,r32 + 94: 05 46 31 5c 5c314605 sbc.c r33,r34,r35 + 98: 05 cc 92 5c 5c92cc05 sbc.c r36,r37,r38 + 9c: 06 52 f4 5c 5cf45206 sbc.nc r39,r40,r41 + a0: 06 d8 55 5d 5d55d806 sbc.nc r42,r43,r44 + a4: 06 5e b7 5d 5db75e06 sbc.nc r45,r46,r47 + a8: 07 e4 18 5e 5e18e407 sbc.v r48,r49,r50 + ac: 07 6a 1a 5f 5f1a6a07 sbc.v r56,r52,r53 + b0: 08 f0 1b 5f 5f1bf008 sbc.nv r56,r55,r56 + b4: 08 76 1d 5f 5f1d7608 sbc.nv r56,r58,r59 + b8: 09 00 9e 5f 5f9e0009 sbc.gt lp_count,lp_count,r0 + bc: 0a 7c 00 58 58007c0a sbc.ge r0,r0,0 + c0: 00 00 00 00 + c4: 0b 02 3f 58 583f020b sbc.lt r1,1,r1 + c8: 01 00 00 00 + cc: 0d 06 7f 58 587f060d sbc.hi r3,3,r3 + d0: 03 00 00 00 + d4: 0e 08 df 5f 5fdf080e sbc.ls 0,4,r4 + d8: 04 00 00 00 + dc: 0f fc c2 5f 5fc2fc0f sbc.pnz 0,r5,5 + e0: 05 00 00 00 + e4: 00 85 00 58 58008500 sbc.f r0,r1,r2 + e8: 01 fa 00 58 5800fa01 sbc.f r0,r1,1 + ec: 01 84 1e 58 581e8401 sbc.f r0,1,r2 + f0: 00 85 e0 5f 5fe08500 sbc.f 0,r1,r2 + f4: 00 fd 00 58 5800fd00 sbc.f r0,r1,0x200 + f8: 00 02 00 00 + fc: 00 05 1f 58 581f0500 sbc.f r0,0x200,r2 + 100: 00 02 00 00 + 104: 01 85 00 58 58008501 sbc.z.f r0,r1,r2 + 108: 02 fd 00 58 5800fd02 sbc.nz.f r0,r1,0 + 10c: 00 00 00 00 + 110: 0b 05 1f 58 581f050b sbc.lt.f r0,0,r2 + 114: 00 00 00 00 + 118: 09 85 c0 5f 5fc08509 sbc.gt.f 0,r1,r2 + 11c: 00 00 00 00 00000000 + 120: 0c fd 00 58 5800fd0c sbc.le.f r0,r1,0x200 + 124: 00 02 00 00 + 128: 0a 05 1f 58 581f050a sbc.ge.f r0,0x200,r2 + 12c: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/sbc.s b/gas/testsuite/gas/arc/sbc.s new file mode 100644 index 0000000..8eb9646 --- /dev/null +++ b/gas/testsuite/gas/arc/sbc.s @@ -0,0 +1,68 @@ +# sbc test + + sbc r0,r1,r2 + sbc r26,fp,sp + sbc ilink1,ilink2,blink + sbc r56,r59,lp_count + + sbc r0,r1,0 + sbc r0,0,r2 + sbc 0,r1,r2 + sbc r0,r1,-1 + sbc r0,-1,r2 + sbc -1,r1,r2 + sbc r0,r1,255 + sbc r0,255,r2 + sbc 255,r1,r2 + sbc r0,r1,-256 + sbc r0,-256,r2 + sbc -256,r1,r2 + + sbc r0,r1,256 + sbc r0,-257,r2 + + sbc r0,255,256 + sbc r0,256,255 + + sbc r0,r1,foo + + sbc.al r0,r1,r2 + sbc.ra r3,r4,r5 + sbc.eq r6,r7,r8 + sbc.z r9,r10,r11 + sbc.ne r12,r13,r14 + sbc.nz r15,r16,r17 + sbc.pl r18,r19,r20 + sbc.p r21,r22,r23 + sbc.mi r24,r25,r26 + sbc.n r27,r28,r29 + sbc.cs r30,r31,r32 + sbc.c r33,r34,r35 + sbc.lo r36,r37,r38 + sbc.cc r39,r40,r41 + sbc.nc r42,r43,r44 + sbc.hs r45,r46,r47 + sbc.vs r48,r49,r50 + sbc.v r56,r52,r53 + sbc.vc r56,r55,r56 + sbc.nv r56,r58,r59 + sbc.gt r60,r60,r0 + sbc.ge r0,r0,0 + sbc.lt r1,1,r1 + sbc.hi r3,3,r3 + sbc.ls 4,4,r4 + sbc.pnz 5,r5,5 + + sbc.f r0,r1,r2 + sbc.f r0,r1,1 + sbc.f r0,1,r2 + sbc.f 0,r1,r2 + sbc.f r0,r1,512 + sbc.f r0,512,r2 + + sbc.eq.f r0,r1,r2 + sbc.ne.f r0,r1,0 + sbc.lt.f r0,0,r2 + sbc.gt.f 0,r1,r2 + sbc.le.f r0,r1,512 + sbc.ge.f r0,512,r2 diff --git a/gas/testsuite/gas/arc/sexb.d b/gas/testsuite/gas/arc/sexb.d new file mode 100644 index 0000000..96d35d6 --- /dev/null +++ b/gas/testsuite/gas/arc/sexb.d @@ -0,0 +1,51 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 8a 00 18 18008a00 sexb r0,r1 + 4: 00 0a 6e 1b 1b6e0a00 sexb fp,sp + 8: 00 8a 1f 18 181f8a00 sexb r0,0 + c: ff 8b 3f 18 183f8bff sexb r1,-1 + 10: 00 0a e1 1f 1fe10a00 sexb 0,r2 + 14: 00 8a e1 1f 1fe18a00 sexb 0,r3 + 18: ff 8a 9f 18 189f8aff sexb r4,255 + 1c: 00 8a e2 1f 1fe28a00 sexb 0,r5 + 20: 00 8b df 18 18df8b00 sexb r6,-256 + 24: 00 8a e3 1f 1fe38a00 sexb 0,r7 + 28: 00 0a 1f 19 191f0a00 sexb r8,0x100 + 2c: 00 01 00 00 + 30: 00 0a 3f 19 193f0a00 sexb r9,0xffff_feff + 34: ff fe ff ff + 38: 00 0a 7f 19 197f0a00 sexb r11,0x4242_4242 + 3c: 42 42 42 42 + 40: 00 0a ff 1f 1fff0a00 sexb 0,0x100 + 44: 00 01 00 00 + 48: 00 0a 1f 18 181f0a00 sexb r0,0 + 4c: 00 00 00 00 + 4c: R_ARC_32 foo + 50: 01 8a 45 19 19458a01 sexb.z r10,r11 + 54: 02 8a 86 19 19868a02 sexb.nz r12,r13 + 58: 0b 0a df 19 19df0a0b sexb.lt r14,0 + 5c: 00 00 00 00 + 60: 09 0a ff 19 19ff0a09 sexb.gt r15,0x200 + 64: 00 02 00 00 + 68: 00 8b 00 18 18008b00 sexb.f r0,r1 + 6c: 01 8a 5e 18 185e8a01 sexb.f r2,1 + 70: 00 0b e2 1f 1fe20b00 sexb.f 0,r4 + 74: 00 0b bf 18 18bf0b00 sexb.f r5,0x200 + 78: 00 02 00 00 + 7c: 00 0b df 1f 1fdf0b00 sexb.f 0,0x200 + 80: 00 02 00 00 + 84: 01 8b 00 18 18008b01 sexb.z.f r0,r1 + 88: 02 0b 3f 18 183f0b02 sexb.nz.f r1,0 + 8c: 00 00 00 00 + 90: 0b 0b c1 1f 1fc10b0b sexb.lt.f 0,r2 + 94: 00 00 00 00 00000000 + 98: 0c 0b 1f 18 181f0b0c sexb.le.f r0,0x200 + 9c: 00 02 00 00 + a0: 04 0b df 1f 1fdf0b04 sexb.n.f 0,0x200 + a4: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/sexb.s b/gas/testsuite/gas/arc/sexb.s new file mode 100644 index 0000000..a2afc3b --- /dev/null +++ b/gas/testsuite/gas/arc/sexb.s @@ -0,0 +1,38 @@ +# sexb test + + sexb r0,r1 + sexb fp,sp + + sexb r0,0 + sexb r1,-1 + sexb 0,r2 + sexb -1,r3 + sexb r4,255 + sexb 255,r5 + sexb r6,-256 + sexb -256,r7 + + sexb r8,256 + sexb r9,-257 + sexb r11,0x42424242 + + sexb 255,256 + + sexb r0,foo + + sexb.eq r10,r11 + sexb.ne r12,r13 + sexb.lt r14,0 + sexb.gt r15,512 + + sexb.f r0,r1 + sexb.f r2,1 + sexb.f 0,r4 + sexb.f r5,512 + sexb.f 512,512 + + sexb.eq.f r0,r1 + sexb.ne.f r1,0 + sexb.lt.f 0,r2 + sexb.le.f r0,512 + sexb.n.f 512,512 diff --git a/gas/testsuite/gas/arc/sexw.d b/gas/testsuite/gas/arc/sexw.d new file mode 100644 index 0000000..7b6a612 --- /dev/null +++ b/gas/testsuite/gas/arc/sexw.d @@ -0,0 +1,51 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 8c 00 18 18008c00 sexw r0,r1 + 4: 00 0c 6e 1b 1b6e0c00 sexw fp,sp + 8: 00 8c 1f 18 181f8c00 sexw r0,0 + c: ff 8d 3f 18 183f8dff sexw r1,-1 + 10: 00 0c e1 1f 1fe10c00 sexw 0,r2 + 14: 00 8c e1 1f 1fe18c00 sexw 0,r3 + 18: ff 8c 9f 18 189f8cff sexw r4,255 + 1c: 00 8c e2 1f 1fe28c00 sexw 0,r5 + 20: 00 8d df 18 18df8d00 sexw r6,-256 + 24: 00 8c e3 1f 1fe38c00 sexw 0,r7 + 28: 00 0c 1f 19 191f0c00 sexw r8,0x100 + 2c: 00 01 00 00 + 30: 00 0c 3f 19 193f0c00 sexw r9,0xffff_feff + 34: ff fe ff ff + 38: 00 0c 7f 19 197f0c00 sexw r11,0x4242_4242 + 3c: 42 42 42 42 + 40: 00 0c ff 1f 1fff0c00 sexw 0,0x100 + 44: 00 01 00 00 + 48: 00 0c 1f 18 181f0c00 sexw r0,0 + 4c: 00 00 00 00 + 4c: R_ARC_32 foo + 50: 01 8c 45 19 19458c01 sexw.z r10,r11 + 54: 02 8c 86 19 19868c02 sexw.nz r12,r13 + 58: 0b 0c df 19 19df0c0b sexw.lt r14,0 + 5c: 00 00 00 00 + 60: 09 0c ff 19 19ff0c09 sexw.gt r15,0x200 + 64: 00 02 00 00 + 68: 00 8d 00 18 18008d00 sexw.f r0,r1 + 6c: 01 8c 5e 18 185e8c01 sexw.f r2,1 + 70: 00 0d e2 1f 1fe20d00 sexw.f 0,r4 + 74: 00 0d bf 18 18bf0d00 sexw.f r5,0x200 + 78: 00 02 00 00 + 7c: 00 0d df 1f 1fdf0d00 sexw.f 0,0x200 + 80: 00 02 00 00 + 84: 01 8d 00 18 18008d01 sexw.z.f r0,r1 + 88: 02 0d 3f 18 183f0d02 sexw.nz.f r1,0 + 8c: 00 00 00 00 + 90: 0b 0d c1 1f 1fc10d0b sexw.lt.f 0,r2 + 94: 00 00 00 00 00000000 + 98: 0c 0d 1f 18 181f0d0c sexw.le.f r0,0x200 + 9c: 00 02 00 00 + a0: 04 0d df 1f 1fdf0d04 sexw.n.f 0,0x200 + a4: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/sexw.s b/gas/testsuite/gas/arc/sexw.s new file mode 100644 index 0000000..6d05dab --- /dev/null +++ b/gas/testsuite/gas/arc/sexw.s @@ -0,0 +1,38 @@ +# sexw test + + sexw r0,r1 + sexw fp,sp + + sexw r0,0 + sexw r1,-1 + sexw 0,r2 + sexw -1,r3 + sexw r4,255 + sexw 255,r5 + sexw r6,-256 + sexw -256,r7 + + sexw r8,256 + sexw r9,-257 + sexw r11,0x42424242 + + sexw 255,256 + + sexw r0,foo + + sexw.eq r10,r11 + sexw.ne r12,r13 + sexw.lt r14,0 + sexw.gt r15,512 + + sexw.f r0,r1 + sexw.f r2,1 + sexw.f 0,r4 + sexw.f r5,512 + sexw.f 512,512 + + sexw.eq.f r0,r1 + sexw.ne.f r1,0 + sexw.lt.f 0,r2 + sexw.le.f r0,512 + sexw.n.f 512,512 diff --git a/gas/testsuite/gas/arc/sleep.d b/gas/testsuite/gas/arc/sleep.d new file mode 100644 index 0000000..b6262f6 --- /dev/null +++ b/gas/testsuite/gas/arc/sleep.d @@ -0,0 +1,11 @@ +#as: -EL -marc7 +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <main>: + 0: 00 84 00 40 40008400 add r0,r1,r2 + 4: 01 fe ff 1f 1ffffe01 sleep + 8: 00 0a 62 50 50620a00 sub r3,r4,r5 diff --git a/gas/testsuite/gas/arc/sleep.s b/gas/testsuite/gas/arc/sleep.s new file mode 100644 index 0000000..c5797fe --- /dev/null +++ b/gas/testsuite/gas/arc/sleep.s @@ -0,0 +1,6 @@ +# sleep test + +main: + add r0,r1,r2 + sleep + sub r3,r4,r5 diff --git a/gas/testsuite/gas/arc/st.d b/gas/testsuite/gas/arc/st.d index cca99a8..0ed6b80 100644 --- a/gas/testsuite/gas/arc/st.d +++ b/gas/testsuite/gas/arc/st.d @@ -1,25 +1,27 @@ -#objdump: -dr -#name: st/sr - -# Test the st/sr insn. +#as: -EL +#objdump: -dr -EL .*: +file format elf32-.*arc Disassembly of section .text: -00000000 10008000 st r0,\[r1\] -00000004 10030a01 st r5,\[r6,1\] -00000008 10040fff st r7,\[r8,-1\] -0000000c 100512ff st r9,\[r10,255\] -00000010 10061700 st r11,\[r12,-256\] -00000014 101f2600 st r19,\[0\] - RELOC: 00000018 R_ARC_32 foo -0000001c 101f2800 st r20,\[4\] - RELOC: 00000020 R_ARC_32 foo -00000024 105f0000 stb r0,\[0\] -0000002c 109f0000 stw r0,\[0\] -00000034 111f0000 st.a r0,\[0\] -0000003c 141f0000 st.di r0,\[0\] -00000044 15400000 stb.a.di r0,\[r0\] -00000048 12008000 sr r0,\[r1\] -0000004c 121f8400 sr r2,\[status\] -00000050 121f0600 sr r3,\[305419896\] + +00000000 <.text>: + 0: 00 02 01 10 10010200 st r1,\[r2\] + 4: 0e 02 01 10 1001020e st r1,\[r2,14\] + 8: 00 02 41 10 10410200 stb r1,\[r2\] + c: 0e 82 01 11 1101820e st.a r1,\[r3,14\] + 10: 02 02 81 11 11810202 stw.a r1,\[r2,2\] + 14: 00 02 1f 10 101f0200 st r1,\[0x384\] + 18: 84 03 00 00 + 1c: 00 7e 41 10 10417e00 stb 0,\[r2\] + 20: f8 7f 01 10 10017ff8 st -8,\[r2,-8\] + 24: 50 7e 1f 10 101f7e50 st 80,\[0x2ee\] + 28: 9e 02 00 00 + 2c: 00 04 1f 10 101f0400 st r2,\[0\] + 30: 00 00 00 00 + 30: R_ARC_32 foo + 34: 02 02 01 14 14010202 st.di r1,\[r2,2\] + 38: 03 02 01 15 15010203 st.a.di r1,\[r2,3\] + 3c: 04 02 81 15 15810204 stw.a.di r1,\[r2,4\] + 40: 00 02 01 12 12010200 sr r1,\[r2\] + 44: 0e 82 1f 12 121f820e sr r1,\[0xe\] diff --git a/gas/testsuite/gas/arc/st.s b/gas/testsuite/gas/arc/st.s index 10af198..2754d27 100644 --- a/gas/testsuite/gas/arc/st.s +++ b/gas/testsuite/gas/arc/st.s @@ -1,19 +1,18 @@ -# st/sr test - - st r0,[r1] - st r5,[r6,1] - st r7,[r8,-1] - st r9,[r10,255] - st r11,[r12,-256] - st r19,[foo] - st r20,[foo+4] - - stb r0,[0] - stw r0,[0] - st.a r0,[0] - st.di r0,[0] - stb.a.di r0,[r0] +# st test - sr r0,[r1] - sr r2,[status] - sr r3,[0x12345678] + st r1,[r2] + st r1,[r2,14] + stb r1,[r2] + st.a r1,[r3,14] + stw.a r1,[r2,2] + st r1,[900] + stb 0,[r2] + st -8,[r2,-8] + st 80,[750] + st r2,[foo] + st.di r1,[r2,2] + st.a.di r1,[r2,3] + stw.a.di r1,[r2,4] + + sr r1,[r2] + sr r1,[14] diff --git a/gas/testsuite/gas/arc/sub.d b/gas/testsuite/gas/arc/sub.d new file mode 100644 index 0000000..e1c333d0 --- /dev/null +++ b/gas/testsuite/gas/arc/sub.d @@ -0,0 +1,85 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 84 00 50 50008400 sub r0,r1,r2 + 4: 00 b8 4d 53 534db800 sub gp,fp,sp + 8: 00 3e af 53 53af3e00 sub ilink1,ilink2,blink + c: 00 f8 1d 57 571df800 sub r56,r59,lp_count + 10: 00 fe 00 50 5000fe00 sub r0,r1,0 + 14: 00 84 1f 50 501f8400 sub r0,0,r2 + 18: 00 84 e0 57 57e08400 sub 0,r1,r2 + 1c: ff ff 00 50 5000ffff sub r0,r1,-1 + 20: ff 85 1f 50 501f85ff sub r0,-1,r2 + 24: 00 84 e0 57 57e08400 sub 0,r1,r2 + 28: ff fe 00 50 5000feff sub r0,r1,255 + 2c: ff 84 1f 50 501f84ff sub r0,255,r2 + 30: 00 84 e0 57 57e08400 sub 0,r1,r2 + 34: 00 ff 00 50 5000ff00 sub r0,r1,-256 + 38: 00 85 1f 50 501f8500 sub r0,-256,r2 + 3c: 00 84 e0 57 57e08400 sub 0,r1,r2 + 40: 00 fc 00 50 5000fc00 sub r0,r1,0x100 + 44: 00 01 00 00 + 48: 00 04 1f 50 501f0400 sub r0,0xffff_feff,r2 + 4c: ff fe ff ff + 50: ff fc 1f 50 501ffcff sub r0,255,0x100 + 54: 00 01 00 00 + 58: ff 7e 1f 50 501f7eff sub r0,0x100,255 + 5c: 00 01 00 00 + 60: 00 fc 00 50 5000fc00 sub r0,r1,0 + 64: 00 00 00 00 + 64: R_ARC_32 foo + 68: 00 84 00 50 50008400 sub r0,r1,r2 + 6c: 00 0a 62 50 50620a00 sub r3,r4,r5 + 70: 01 90 c3 50 50c39001 sub.z r6,r7,r8 + 74: 01 16 25 51 51251601 sub.z r9,r10,r11 + 78: 02 9c 86 51 51869c02 sub.nz r12,r13,r14 + 7c: 02 22 e8 51 51e82202 sub.nz r15,r16,r17 + 80: 03 a8 49 52 5249a803 sub.p r18,r19,r20 + 84: 03 2e ab 52 52ab2e03 sub.p r21,r22,r23 + 88: 04 b4 0c 53 530cb404 sub.n r24,r25,gp + 8c: 04 3a 6e 53 536e3a04 sub.n fp,sp,ilink1 + 90: 05 c0 cf 53 53cfc005 sub.c ilink2,blink,r32 + 94: 05 46 31 54 54314605 sub.c r33,r34,r35 + 98: 05 cc 92 54 5492cc05 sub.c r36,r37,r38 + 9c: 06 52 f4 54 54f45206 sub.nc r39,r40,r41 + a0: 06 d8 55 55 5555d806 sub.nc r42,r43,r44 + a4: 06 5e b7 55 55b75e06 sub.nc r45,r46,r47 + a8: 07 e4 18 56 5618e407 sub.v r48,r49,r50 + ac: 07 6a 1a 57 571a6a07 sub.v r56,r52,r53 + b0: 08 f0 1b 57 571bf008 sub.nv r56,r55,r56 + b4: 08 76 1d 57 571d7608 sub.nv r56,r58,r59 + b8: 09 00 9e 57 579e0009 sub.gt lp_count,lp_count,r0 + bc: 0a 7c 00 50 50007c0a sub.ge r0,r0,0 + c0: 00 00 00 00 + c4: 0b 02 3f 50 503f020b sub.lt r1,1,r1 + c8: 01 00 00 00 + cc: 0d 06 7f 50 507f060d sub.hi r3,3,r3 + d0: 03 00 00 00 + d4: 0e 08 df 57 57df080e sub.ls 0,4,r4 + d8: 04 00 00 00 + dc: 0f fc c2 57 57c2fc0f sub.pnz 0,r5,5 + e0: 05 00 00 00 + e4: 00 85 00 50 50008500 sub.f r0,r1,r2 + e8: 01 fa 00 50 5000fa01 sub.f r0,r1,1 + ec: 01 84 1e 50 501e8401 sub.f r0,1,r2 + f0: 00 85 e0 57 57e08500 sub.f 0,r1,r2 + f4: 00 fd 00 50 5000fd00 sub.f r0,r1,0x200 + f8: 00 02 00 00 + fc: 00 05 1f 50 501f0500 sub.f r0,0x200,r2 + 100: 00 02 00 00 + 104: 01 85 00 50 50008501 sub.z.f r0,r1,r2 + 108: 02 fd 00 50 5000fd02 sub.nz.f r0,r1,0 + 10c: 00 00 00 00 + 110: 0b 05 1f 50 501f050b sub.lt.f r0,0,r2 + 114: 00 00 00 00 + 118: 09 85 c0 57 57c08509 sub.gt.f 0,r1,r2 + 11c: 00 00 00 00 00000000 + 120: 0c fd 00 50 5000fd0c sub.le.f r0,r1,0x200 + 124: 00 02 00 00 + 128: 0a 05 1f 50 501f050a sub.ge.f r0,0x200,r2 + 12c: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/sub.s b/gas/testsuite/gas/arc/sub.s new file mode 100644 index 0000000..6dd5009 --- /dev/null +++ b/gas/testsuite/gas/arc/sub.s @@ -0,0 +1,68 @@ +# sub test + + sub r0,r1,r2 + sub r26,fp,sp + sub ilink1,ilink2,blink + sub r56,r59,lp_count + + sub r0,r1,0 + sub r0,0,r2 + sub 0,r1,r2 + sub r0,r1,-1 + sub r0,-1,r2 + sub -1,r1,r2 + sub r0,r1,255 + sub r0,255,r2 + sub 255,r1,r2 + sub r0,r1,-256 + sub r0,-256,r2 + sub -256,r1,r2 + + sub r0,r1,256 + sub r0,-257,r2 + + sub r0,255,256 + sub r0,256,255 + + sub r0,r1,foo + + sub.al r0,r1,r2 + sub.ra r3,r4,r5 + sub.eq r6,r7,r8 + sub.z r9,r10,r11 + sub.ne r12,r13,r14 + sub.nz r15,r16,r17 + sub.pl r18,r19,r20 + sub.p r21,r22,r23 + sub.mi r24,r25,r26 + sub.n r27,r28,r29 + sub.cs r30,r31,r32 + sub.c r33,r34,r35 + sub.lo r36,r37,r38 + sub.cc r39,r40,r41 + sub.nc r42,r43,r44 + sub.hs r45,r46,r47 + sub.vs r48,r49,r50 + sub.v r56,r52,r53 + sub.vc r56,r55,r56 + sub.nv r56,r58,r59 + sub.gt r60,r60,r0 + sub.ge r0,r0,0 + sub.lt r1,1,r1 + sub.hi r3,3,r3 + sub.ls 4,4,r4 + sub.pnz 5,r5,5 + + sub.f r0,r1,r2 + sub.f r0,r1,1 + sub.f r0,1,r2 + sub.f 0,r1,r2 + sub.f r0,r1,512 + sub.f r0,512,r2 + + sub.eq.f r0,r1,r2 + sub.ne.f r0,r1,0 + sub.lt.f r0,0,r2 + sub.gt.f 0,r1,r2 + sub.le.f r0,r1,512 + sub.ge.f r0,512,r2 diff --git a/gas/testsuite/gas/arc/swi.d b/gas/testsuite/gas/arc/swi.d new file mode 100644 index 0000000..58654ec --- /dev/null +++ b/gas/testsuite/gas/arc/swi.d @@ -0,0 +1,11 @@ +#as: -EL -marc8 +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <main>: + 0: 00 84 00 40 40008400 add r0,r1,r2 + 4: 02 fe ff 1f 1ffffe02 swi + 8: 00 0a 62 50 50620a00 sub r3,r4,r5 diff --git a/gas/testsuite/gas/arc/swi.s b/gas/testsuite/gas/arc/swi.s new file mode 100644 index 0000000..ce0d7fe --- /dev/null +++ b/gas/testsuite/gas/arc/swi.s @@ -0,0 +1,6 @@ +# swi test + +main: + add r0,r1,r2 + swi + sub r3,r4,r5 diff --git a/gas/testsuite/gas/arc/warn.exp b/gas/testsuite/gas/arc/warn.exp index 79ff126..e544ea5 100644 --- a/gas/testsuite/gas/arc/warn.exp +++ b/gas/testsuite/gas/arc/warn.exp @@ -1,13 +1,8 @@ # Test assembler warnings. if [istarget arc*-*-*] { - load_lib gas-dg.exp - dg-init - dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/warn*.s]] "" "" - dg-finish - } diff --git a/gas/testsuite/gas/arc/warn.s b/gas/testsuite/gas/arc/warn.s index 6fcb437..060a74e 100644 --- a/gas/testsuite/gas/arc/warn.s +++ b/gas/testsuite/gas/arc/warn.s @@ -3,12 +3,9 @@ ; { dg-do assemble { target arc-*-* } } b.d foo - mov r0,256 ; { dg-warning "8 byte instruction in delay slot" "8 byte insn in delay slot" } + mov r0,256 ; { dg-warning "8 byte instruction in delay slot" "8 byte instruction in delay slot" } - j.d foo ; { dg-warning "8 byte jump instruction with delay slot" "8 byte jump with delay slot" } + j.d foo ; { dg-warning "8 byte jump instruction with delay slot" "8 byte jump instruction with delay slot" } mov r0,r1 - sub.f 0,r0,r2 - beq foo ; { dg-warning "conditional branch follows set of flags" "cc set/branch nop test" } - foo: diff --git a/gas/testsuite/gas/arc/xor.d b/gas/testsuite/gas/arc/xor.d new file mode 100644 index 0000000..46fdedd --- /dev/null +++ b/gas/testsuite/gas/arc/xor.d @@ -0,0 +1,85 @@ +#as: -EL +#objdump: -dr -EL + +.*: +file format elf32-.*arc + +Disassembly of section .text: + +00000000 <.text>: + 0: 00 84 00 78 78008400 xor r0,r1,r2 + 4: 00 b8 4d 7b 7b4db800 xor gp,fp,sp + 8: 00 3e af 7b 7baf3e00 xor ilink1,ilink2,blink + c: 00 f8 1d 7f 7f1df800 xor r56,r59,lp_count + 10: 00 fe 00 78 7800fe00 xor r0,r1,0 + 14: 00 84 1f 78 781f8400 xor r0,0,r2 + 18: 00 84 e0 7f 7fe08400 xor 0,r1,r2 + 1c: ff ff 00 78 7800ffff xor r0,r1,-1 + 20: ff 85 1f 78 781f85ff xor r0,-1,r2 + 24: 00 84 e0 7f 7fe08400 xor 0,r1,r2 + 28: ff fe 00 78 7800feff xor r0,r1,255 + 2c: ff 84 1f 78 781f84ff xor r0,255,r2 + 30: 00 84 e0 7f 7fe08400 xor 0,r1,r2 + 34: 00 ff 00 78 7800ff00 xor r0,r1,-256 + 38: 00 85 1f 78 781f8500 xor r0,-256,r2 + 3c: 00 84 e0 7f 7fe08400 xor 0,r1,r2 + 40: 00 fc 00 78 7800fc00 xor r0,r1,0x100 + 44: 00 01 00 00 + 48: 00 04 1f 78 781f0400 xor r0,0xffff_feff,r2 + 4c: ff fe ff ff + 50: ff fc 1f 78 781ffcff xor r0,255,0x100 + 54: 00 01 00 00 + 58: ff 7e 1f 78 781f7eff xor r0,0x100,255 + 5c: 00 01 00 00 + 60: 00 fc 00 78 7800fc00 xor r0,r1,0 + 64: 00 00 00 00 + 64: R_ARC_32 foo + 68: 00 84 00 78 78008400 xor r0,r1,r2 + 6c: 00 0a 62 78 78620a00 xor r3,r4,r5 + 70: 01 90 c3 78 78c39001 xor.z r6,r7,r8 + 74: 01 16 25 79 79251601 xor.z r9,r10,r11 + 78: 02 9c 86 79 79869c02 xor.nz r12,r13,r14 + 7c: 02 22 e8 79 79e82202 xor.nz r15,r16,r17 + 80: 03 a8 49 7a 7a49a803 xor.p r18,r19,r20 + 84: 03 2e ab 7a 7aab2e03 xor.p r21,r22,r23 + 88: 04 b4 0c 7b 7b0cb404 xor.n r24,r25,gp + 8c: 04 3a 6e 7b 7b6e3a04 xor.n fp,sp,ilink1 + 90: 05 c0 cf 7b 7bcfc005 xor.c ilink2,blink,r32 + 94: 05 46 31 7c 7c314605 xor.c r33,r34,r35 + 98: 05 cc 92 7c 7c92cc05 xor.c r36,r37,r38 + 9c: 06 52 f4 7c 7cf45206 xor.nc r39,r40,r41 + a0: 06 d8 55 7d 7d55d806 xor.nc r42,r43,r44 + a4: 06 5e b7 7d 7db75e06 xor.nc r45,r46,r47 + a8: 07 e4 18 7e 7e18e407 xor.v r48,r49,r50 + ac: 07 6a 1a 7f 7f1a6a07 xor.v r56,r52,r53 + b0: 08 f0 1b 7f 7f1bf008 xor.nv r56,r55,r56 + b4: 08 76 1d 7f 7f1d7608 xor.nv r56,r58,r59 + b8: 09 00 9e 7f 7f9e0009 xor.gt lp_count,lp_count,r0 + bc: 0a 7c 00 78 78007c0a xor.ge r0,r0,0 + c0: 00 00 00 00 + c4: 0b 02 3f 78 783f020b xor.lt r1,1,r1 + c8: 01 00 00 00 + cc: 0d 06 7f 78 787f060d xor.hi r3,3,r3 + d0: 03 00 00 00 + d4: 0e 08 df 7f 7fdf080e xor.ls 0,4,r4 + d8: 04 00 00 00 + dc: 0f fc c2 7f 7fc2fc0f xor.pnz 0,r5,5 + e0: 05 00 00 00 + e4: 00 85 00 78 78008500 xor.f r0,r1,r2 + e8: 01 fa 00 78 7800fa01 xor.f r0,r1,1 + ec: 01 84 1e 78 781e8401 xor.f r0,1,r2 + f0: 00 85 e0 7f 7fe08500 xor.f 0,r1,r2 + f4: 00 fd 00 78 7800fd00 xor.f r0,r1,0x200 + f8: 00 02 00 00 + fc: 00 05 1f 78 781f0500 xor.f r0,0x200,r2 + 100: 00 02 00 00 + 104: 01 85 00 78 78008501 xor.z.f r0,r1,r2 + 108: 02 fd 00 78 7800fd02 xor.nz.f r0,r1,0 + 10c: 00 00 00 00 + 110: 0b 05 1f 78 781f050b xor.lt.f r0,0,r2 + 114: 00 00 00 00 + 118: 09 85 c0 7f 7fc08509 xor.gt.f 0,r1,r2 + 11c: 00 00 00 00 00000000 + 120: 0c fd 00 78 7800fd0c xor.le.f r0,r1,0x200 + 124: 00 02 00 00 + 128: 0a 05 1f 78 781f050a xor.ge.f r0,0x200,r2 + 12c: 00 02 00 00 diff --git a/gas/testsuite/gas/arc/xor.s b/gas/testsuite/gas/arc/xor.s new file mode 100644 index 0000000..090107a --- /dev/null +++ b/gas/testsuite/gas/arc/xor.s @@ -0,0 +1,68 @@ +# xor test + + xor r0,r1,r2 + xor r26,fp,sp + xor ilink1,ilink2,blink + xor r56,r59,lp_count + + xor r0,r1,0 + xor r0,0,r2 + xor 0,r1,r2 + xor r0,r1,-1 + xor r0,-1,r2 + xor -1,r1,r2 + xor r0,r1,255 + xor r0,255,r2 + xor 255,r1,r2 + xor r0,r1,-256 + xor r0,-256,r2 + xor -256,r1,r2 + + xor r0,r1,256 + xor r0,-257,r2 + + xor r0,255,256 + xor r0,256,255 + + xor r0,r1,foo + + xor.al r0,r1,r2 + xor.ra r3,r4,r5 + xor.eq r6,r7,r8 + xor.z r9,r10,r11 + xor.ne r12,r13,r14 + xor.nz r15,r16,r17 + xor.pl r18,r19,r20 + xor.p r21,r22,r23 + xor.mi r24,r25,r26 + xor.n r27,r28,r29 + xor.cs r30,r31,r32 + xor.c r33,r34,r35 + xor.lo r36,r37,r38 + xor.cc r39,r40,r41 + xor.nc r42,r43,r44 + xor.hs r45,r46,r47 + xor.vs r48,r49,r50 + xor.v r56,r52,r53 + xor.vc r56,r55,r56 + xor.nv r56,r58,r59 + xor.gt r60,r60,r0 + xor.ge r0,r0,0 + xor.lt r1,1,r1 + xor.hi r3,3,r3 + xor.ls 4,4,r4 + xor.pnz 5,r5,5 + + xor.f r0,r1,r2 + xor.f r0,r1,1 + xor.f r0,1,r2 + xor.f 0,r1,r2 + xor.f r0,r1,512 + xor.f r0,512,r2 + + xor.eq.f r0,r1,r2 + xor.ne.f r0,r1,0 + xor.lt.f r0,0,r2 + xor.gt.f 0,r1,r2 + xor.le.f r0,r1,512 + xor.ge.f r0,512,r2 diff --git a/gas/testsuite/gas/ieee-fp/x930509a.exp b/gas/testsuite/gas/ieee-fp/x930509a.exp index 88a2e13..4218c87 100644 --- a/gas/testsuite/gas/ieee-fp/x930509a.exp +++ b/gas/testsuite/gas/ieee-fp/x930509a.exp @@ -23,6 +23,6 @@ proc dotest {} { # float encoding is tested in c54x-specific tests. # No floating point support in assembly code for CRIS. if { ![istarget vax*-*-*] && ![istarget *c54x*-*-*] - && ![istarget cris-*-*] } then { + && ![istarget cris-*-*] && ![istarget arc*-*-*] } then { dotest } diff --git a/gas/testsuite/gas/vtable/vtable.exp b/gas/testsuite/gas/vtable/vtable.exp index 80a533c..f2235de 100644 --- a/gas/testsuite/gas/vtable/vtable.exp +++ b/gas/testsuite/gas/vtable/vtable.exp @@ -29,6 +29,11 @@ if { ( [istarget "*-*-elf*"] || [istarget "*-*-linux*"]) return } + # not yet supported by ARC + if {[istarget "arc*-*-*"]} { + return + } + run_dump_test "inherit0" run_list_test "inherit1" "-al" |