diff options
Diffstat (limited to 'gas/testsuite/gas/m88k/allinsn.s')
-rw-r--r-- | gas/testsuite/gas/m88k/allinsn.s | 460 |
1 files changed, 0 insertions, 460 deletions
diff --git a/gas/testsuite/gas/m88k/allinsn.s b/gas/testsuite/gas/m88k/allinsn.s deleted file mode 100644 index 4a7e60a365..0000000000 --- a/gas/testsuite/gas/m88k/allinsn.s +++ /dev/null @@ -1,460 +0,0 @@ - ;; Test all instructions in the m88k instruction set. - ;; Copyright 2001 Free Software Foundation, Inc. - ;; Contributed by Ben Elliston (bje at redhat.com). - -.text - ;; integer add - - add r0, r1, r2 - add.ci r1, r2, r3 - add.co r2, r3, r4 - add.cio r3, r4, r5 - add r4, r5, 0 - add r4, r5, 4096 - - ;; unsigned integer add - - addu r0, r1, r2 - addu.ci r1, r2, r3 - addu.co r2, r3, r4 - addu.cio r3, r4, r5 - addu r4, r5, 0 - addu r4, r5, 4096 - - ;; logical and - - and r0, r1, r2 - and.c r1, r2, r3 - and r2, r3, 0 - and r2, r3, 4096 - and.u r2, r3, 0 - and.u r2, r3, 4096 - - ;; branch on bit clear - - bb0 0, r1, 0 - bb0 0, r1, -10 - bb0 0, r1, 10 - bb0 31, r1, 0 - bb0 31, r1, -10 - bb0 31, r1, 10 - bb0.n 0, r1, 0 - - ;; branch on bit set - - bb1 0, r1, 0 - bb1 0, r1, -10 - bb1 0, r1, 10 - bb1 31, r1, 0 - bb1 31, r1, -10 - bb1 31, r1, 10 - bb1.n 0, r1, 0 - - ;; conditional branch - - bcnd eq0, r1, 0 - bcnd eq0, r1, 10 - bcnd eq0, r1, -10 - bcnd.n eq0, r1, 0 - bcnd.n eq0, r1, 10 - bcnd.n eq0, r1, -10 - bcnd ne0, r1, 0 - bcnd ne0, r1, 10 - bcnd ne0, r1, -10 - bcnd.n ne0, r1, 0 - bcnd.n ne0, r1, 10 - bcnd.n ne0, r1, -10 - bcnd gt0, r1, 0 - bcnd gt0, r1, 10 - bcnd gt0, r1, -10 - bcnd.n gt0, r1, 0 - bcnd.n gt0, r1, 10 - bcnd.n gt0, r1, -10 - bcnd lt0, r1, 0 - bcnd lt0, r1, 10 - bcnd lt0, r1, -10 - bcnd.n lt0, r1, 0 - bcnd.n lt0, r1, 10 - bcnd.n lt0, r1, -10 - bcnd ge0, r1, 0 - bcnd ge0, r1, 10 - bcnd ge0, r1, -10 - bcnd.n ge0, r1, 0 - bcnd.n ge0, r1, 10 - bcnd.n ge0, r1, -10 - bcnd le0, r1, 0 - bcnd le0, r1, 10 - bcnd le0, r1, -10 - bcnd.n le0, r1, 0 - bcnd.n le0, r1, 10 - bcnd.n le0, r1, -10 - ;; using m5 field - bcnd 3, r1, 0 - bcnd 3, r1, 10 - bcnd 3, r1, -10 - bcnd.n 3, r1, 0 - bcnd.n 3, r1, 10 - bcnd.n 3, r1, -10 - - ;; uncoditional branch - - br 0 - br -10 - br 10 - br.n 0 - br.n -10 - br.n 10 - - ;; branch to subroutine - - bsr 0 - bsr -10 - bsr 10 - bsr.n 0 - bsr.n -10 - bsr.n 10 - - ;; clear bit field - - clr r1, r2, 5<15> - clr r1, r2, r3 - clr r1, r2, 6 - clr r1, r2, <6> - - ;; integer compare - - cmp r0, r1, r2 - cmp r0, r2, 0 - cmp r0, r2, 4096 - - ;; signed integer divide - - div r0, r1, r2 - div r0, r1, 0 - div r0, r1, 4096 - - ;; unsigned integer divide - - divu r0, r1, r2 - divu r0, r1, 0 - divu r0, r1, 10 - - ;; extract signed bit field - - ext r0, r1, 10<5> - ext r1, r2, r3 - ext r2, r3, 6 - ext r2, r3, <6> - - ;; extract unsigned bit field - - extu r0, r1, 10<5> - extu r1, r2, r3 - extu r1, r2, 6 - extu r1, r2, <6> - - ;; floating point add - - fadd.sss r0, r1, r2 - fadd.ssd r0, r1, r2 - fadd.sds r0, r1, r2 - fadd.sdd r0, r1, r2 - fadd.dss r0, r1, r2 - fadd.dsd r0, r1, r2 - fadd.dds r0, r1, r2 - fadd.ddd r0, r1, r2 - - ;; floating point compare - - fcmp.sss r0, r1, r2 - fcmp.ssd r0, r1, r2 - fcmp.sds r0, r1, r2 - fcmp.sdd r0, r1, r2 - - ;; floating point divide - - fdiv.sss r0, r1, r2 - fdiv.ssd r0, r1, r2 - fdiv.sds r0, r1, r2 - fdiv.sdd r0, r1, r2 - fdiv.dss r0, r1, r2 - fdiv.dsd r0, r1, r2 - fdiv.dds r0, r1, r2 - fdiv.ddd r0, r1, r2 - - ;; find first bit clear - - ff0 r1, r7 - - ;; find first bit set - - ff1 r3, r8 - - ;; load from floating-point control register - - fldcr r0, fcr50 - - ;; convert integer to floating point - - flt.ss r0, r3 - flt.ds r0, r10 - - ;; floating point multiply - - fmul.sss r0, r1, r2 - fmul.ssd r0, r1, r2 - fmul.sds r0, r1, r2 - fmul.sdd r0, r1, r2 - fmul.dss r0, r1, r2 - fmul.dsd r0, r1, r2 - fmul.dds r0, r1, r2 - fmul.ddd r0, r1, r2 - - ;; store to floating point control register - - fstcr r0, fcr50 - - ;; floating point subtract - - fsub.sss r0, r1, r2 - fsub.ssd r0, r1, r2 - fsub.sds r0, r1, r2 - fsub.sdd r0, r1, r2 - fsub.dss r0, r1, r2 - fsub.dsd r0, r1, r2 - fsub.dds r0, r1, r2 - fsub.ddd r0, r1, r2 - - ;; exchange floating point control register - - fxcr r0, r1, fcr50 - - ;; round floating point to integer - - int.ss r0, r1 - int.sd r10, r2 - - ;; unconditional jump - - jmp r0 - jmp.n r10 - - ;; jump to subroutine - - jsr r10 - jsr.n r13 - - ;; load register from memory - - ;; unscaled - ld.b r0, r1, 0 - ld.b r0, r1, 4096 - ld.bu r0, r1, 0 - ld.bu r0, r1, 4096 - ld.h r0, r1, 0 - ld.h r0, r1, 4096 - ld.hu r0, r1, 0 - ld.hu r0, r1, 4096 - ld r0, r1, 0 - ld r0, r1, 4096 - ld.d r0, r1, 0 - ld.d r0, r1, 4096 - ;; unscaled - ld.b r0, r1, r2 - ld.bu r1, r2, r3 - ld.h r2, r3, r4 - ld.hu r3, r4, r5 - ld r4, r5, r6 - ld.d r5, r6, r7 - ld.b.usr r6, r7, r8 - ld.bu.usr r7, r8, r9 - ld.h.usr r8, r9, r1 - ld.hu.usr r9, r1, r2 - ld.usr r1, r2, r3 - ld.d.usr r2, r3, r4 - ;; scaled - ld.b r0, r1[r2] - ld.bu r1, r2[r3] - ld.h r2, r3[r4] - ld.hu r3, r4[r5] - ld r4, r5[r6] - ld.d r5, r6[r7] - ld.b.usr r6, r7[r8] - ld.bu.usr r7, r8[r9] - ld.h.usr r8, r9[r1] - ld.hu.usr r9, r1[r2] - ld.usr r1, r2[r3] - ld.d.usr r2, r3[r4] - - ;; load address - - lda.h r0, r1[r2] - lda r1,r2[r3] - lda.d r2,r3[r4] - - ;; load from control register - - ldcr r0, cr10 - - ;; make bit field - - mak r0, r1, 10<5> - mak r0, r1, r2 - mak r0, r1, 6 - mak r0, r1, <6> - - ;; logical mask immediate - - mask r0, r1, 0 - mask r0, r1, 4096 - mask.u r0, r1, 0 - mask.u r0, r1, 4096 - - ;; integer multiply - - mul r0, r1, r2 - mul r0, r1, 0 - mul r0, r1, 4096 - - ;; floating point round to nearest integer - - nint.ss r0, r10 - nint.sd r10, r12 - - ;; logical or - - or r0, r1, r2 - or.c r1, r7, r10 - or r0, r4, 0 - or r0, r4, 4096 - or.u r0, r1, 0 - or.u r2, r4, 4096 - - ;; rotate register - - rot r0, r1,<5> - rot r2, r4, r6 - - ;; return from exception - - rte - - ;; set bit field - - set r0, r1, 10<5> - set r2, r4, r6 - set r3, r7, 6 - set r3, r7, <6> - - ;; store register to memory - - ;; unscaled - st.b r0, r1, 0 - st.b r0, r1, 4096 - st.h r0, r1, 0 - st.h r0, r1, 4096 - st r0, r1, 0 - st r0, r1, 4096 - st.d r0, r1, 0 - st.d r0, r1, 4096 - ;; unscaled - st.b r0, r1, r2 - st.h r2, r3, r4 - st r4, r5, r6 - st.d r5, r6, r7 - st.b.usr r6, r7, r8 - st.h.usr r8, r9, r1 - st.usr r1, r2, r3 - st.d.usr r2, r3, r4 - ;; scaled - st.b r0, r1[r2] - st.h r2, r3[r4] - st r4, r5[r6] - st.d r5, r6[r7] - st.b.usr r6, r7[r8] - st.h.usr r8, r9[r1] - st.usr r1, r2[r3] - st.d.usr r2, r3[r4] - - ;; store to control register - - stcr r0, cr10 - - ;; integer subtract - - sub r0, r1, r2 - sub.ci r1, r2, r3 - sub.co r2, r3, r4 - sub.cio r3, r4, r5 - sub r4, r5, 0 - sub r4, r5, 4096 - - ;; unsigned integer subtract - - subu r0, r1, r2 - subu.ci r1, r2, r3 - subu.co r3, r4, r5 - subu.cio r4, r5, r6 - subu r5, r6, 0 - subu r5, r6, 4096 - - ;; trap on bit clear - - tb0 0, r10, 10 - tb0 31, r11, 10 - - ;; trap on bit set - - tb1 0, r10, 10 - tb1 31, r11, 10 - - ;; trap on bounds check - - tbnd r0, r1 - tbnd r7, 0 - tbnd r7, 4096 - - ;; conditional trap - - tcnd eq0, r10, 12 - tcnd ne0, r9, 12 - tcnd gt0, r8, 7 - tcnd lt0, r7, 1 - tcnd ge0, r6, 35 - tcnd le0, r5, 33 - tcnd 10, r4, 12 - - ;; truncate floating point to integer - - trnc.ss r0, r1 - trnc.sd r1, r3 - - ;; exchange control register - - xcr r0, r3, cr10 - - ;; exchange register with memory - - ;; FIXME: these should assemble! - ;; xmem.bu r0, r1, 0 - ;; xmem.bu r0, r1, 10 - ;; xmem r0, r1, 0 - ;; xmem r1, r2, 4096 - xmem.bu r0, r1, r2 - xmem r1, r2, r3 - xmem.bu.usr r4, r5, r6 - xmem.usr r5, r6, r7 - xmem.bu r2, r3[r4] - xmem r3, r4[r5] - xmem.bu.usr r4, r5[r9] - xmem.usr r5, r6[r10] - - ;; logical exclusive or - - xor r0, r1, r2 - xor.c r1, r2, r3 - xor r2, r3, 0 - xor r2, r4, 4096 - xor.u r1, r2, 0 - xor.u r2, r3, 4096 - |