Browse Source

Added test.s

ceriel 33 years ago
parent
commit
dae1aff342
1 changed files with 458 additions and 0 deletions
  1. 458 0
      mach/vax4/as/test.s

+ 458 - 0
mach/vax4/as/test.s

@@ -0,0 +1,458 @@
+.sect .text
+.define _main
+.define _main2
+.define _xxx
+! integer arithmetic and logical instructions
+
+_main:
+.data2 0x0
+adawi	r0, r1
+addb2	r0,r1
+addb3	r0,r2,r4
+addw2	r0,r1
+addw3	r0,r2,r4
+addl2	r0,r1
+addl3	r0,r2,r4
+adwc	r0, r1
+ashl	r0, r1, r2
+ashq	r0, r1, r2
+bicb2	r0,r1
+bicb3	r0,r2,r4
+bicw2	r0,r1
+bicw3	r0,r2,r4
+bicl2	r0,r1
+bicl3	r0,r2,r4
+bisb2	r0,r1
+bisb3	r0,r2,r4
+bisw2	r0,r1
+bisw3	r0,r2,r4
+bisl2	r0,r1
+bisl3	r0,r2,r4
+bitb	r0, r1
+bitw	r0, r1
+bitl	r0, r1
+clrb	r0
+clrw	r0
+clrl	r0
+clrq	r0
+clro	r0
+cmpb	r0, r1
+cmpw	r0, r1
+cmpl	r0, r1
+cvtbw	r0, r1
+cvtbl	r0, r1
+cvtwb	r0, r1
+cvtwl	r0, r1
+cvtlb	r0, r1
+cvtlw	r0, r1
+decb	r0
+decw	r0
+decl	r0
+divb2	r0,r1
+divb3	r0,r2,r4
+divw2	r0,r1
+divw3	r0,r2,r4
+divl2	r0,r1
+divl3	r0,r2,r4
+ediv	r0,r1,r2,r3
+emul	r0,r1,r2,r3
+incb	r0
+incw	r0
+incl	r0
+mcomb	r0, r1
+mcomw	r0, r1
+mcoml	r0, r1
+mnegb	r0, r1
+mnegw	r0, r1
+mnegl	r0, r1
+movb	r0, r1
+movw	r0, r1
+movl	r0, r1
+movq	r0, r1
+movo	r0, r1
+movzbw	r0, r1
+movzbl	r0, r1
+movzwl	r0, r1
+mulb2	r0,r1
+mulb3	r0,r2,r4
+mulw2	r0,r1
+mulw3	r0,r2,r4
+mull2	r0,r1
+mull3	r0,r2,r4
+pushl	r0
+pushl	$1
+rotl	r0, r1, r2
+sbwc	r0, r1
+subb2	r0,r1
+subb3	r0,r2,r4
+subw2	r0,r1
+subw3	r0,r2,r4
+subl2	r0,r1
+subl3	r0,r2,r4
+tstb	r0
+tstw	r0
+tstl	r0
+xorb2	r0,r1
+xorb3	r0,r2,r4
+xorw2	r0,r1
+xorw3	r0,r2,r4
+xorl2	r0,r1
+xorl3	r0,r2,r4
+
+!* Address instructions */
+
+movab	(sp),r0
+movaw	(sp),r0
+moval	(sp),r0
+movaf	(sp),r0
+movaq	(sp),r0
+movad	(sp),r0
+movag	(sp),r0
+movah	(sp),r0
+movao	(sp),r0
+pushab	(sp)
+pushaw	(sp)
+pushal	(sp)
+pushaf	(sp)
+pushaq	(sp)
+pushad	(sp)
+pushag	(sp)
+pushah	(sp)
+pushao	(sp)
+
+!* Variable length bit-field instructions */
+
+cmpv	r0,r1,r2,r3
+cmpzv	r0,r1,r2,r3
+extv	r0,r1,r2,r3
+extzv	r0,r1,r2,r3
+ffc	r0,r1,r2,r3
+ffs	r0,r1,r2,r3
+insv	r0,r1,r2,r3
+
+!* Control instructions */
+
+acbb	r0,r1,r2,_main
+acbw	r0,r1,r2,_main
+acbl	r0,r1,r2,_main
+acbf	r0,r1,r2,_main
+acbd	r0,r1,r2,_main
+acbg	r0,r1,r2,_main
+acbh	r0,r1,r2,_main
+aobleq	r0, r1, 1f
+1:
+aoblss	r0, r1, 1f
+1:
+bgtr	1f
+1:
+bleq	1f
+1:
+bneq	1f
+1:
+bnequ	1f
+1:
+beql	1f
+1:
+beqlu	1f
+1:
+bgeq	1f
+1:
+blss	1f
+1:
+bgtru	1f
+1:
+blequ	1f
+1:
+bvc	1f
+1:
+bvs	1f
+1:
+bgequ	1f
+1:
+bcc	1f
+1:
+blssu	1f
+1:
+bcs	1f
+1:
+bbs	r0, r1, 1f
+1:
+bbc	r0, r1, 1f
+1:
+bbss	r0, r1, 1f
+1:
+bbcs	r0, r1, 1f
+1:
+bbsc	r0, r1, 1f
+1:
+bbcc	r0, r1, 1f
+1:
+bbssi	r0, r1, 1f
+1:
+bbcci	r0, r1, 1f
+1:
+blbs	r0,1f
+blbc	r0,1f
+1:
+jgtr	_main
+jleq	_main
+jneq	_main
+jnequ	_main
+jeql	_main
+jeqlu	_main
+jgeq	_main
+jlss	_main
+jgtru	_main
+jlequ	_main
+jvc	_main
+jvs	_main
+jgequ	_main
+jcc	_main
+jlssu	_main
+jcs	_main
+jlbs	r0, _main
+jlbc	r0, _main
+jbs	r0, r1, _main
+jbc	r0, r1, _main
+jbss	r0, r1, _main
+jbcs	r0, r1, _main
+jbsc	r0, r1, _main
+jbcc	r0, r1, _main
+jbssi	r0, r1, _main
+jbcci	r0, r1, _main
+br	_main
+br	_main2
+brb	1f
+1:
+brw	1f
+1:
+jbr	_main
+jbr	_main2
+bsb	1f
+1:
+caseb	r0, r1, r2
+casew	r0, r1, r2
+casel	r0, r1, r2
+jmp	_main
+jsb	_main
+rsb
+sobgeq	r0, 1f
+sobgtr	r0, 1f
+1:
+
+!* Procedure call instructions */
+
+callg	(sp),_main
+calls	$2, _main
+ret
+
+!* Miscellaneous instructions */
+
+bicpsw	r0
+bispsw	r0
+bpt
+halt
+index	r0,r1,r2,r3,r4,r5
+movpsl	r0
+nop
+popr	r0
+pushr	r0
+xfc
+
+!* Queue instructions */
+
+insqhi	(sp), _main
+insqti	(sp), _main
+insque	(sp), _main
+remqhi	(sp), _main
+remqti	(sp), _main
+remque	(sp), _main
+
+!* Floating point instructions */
+
+addf2	r0,r1
+addf3	r0,r2,r4
+addd2	r0,r1
+addd3	r0,r2,r4
+addg2	r0,r1
+addg3	r0,r2,r4
+addh2	r0,r1
+addh3	r0,r2,r4
+clrf	r0
+clrd	r0
+clrg	r0
+clrh	r0
+cmpf	r0,r2
+cmpd	r0,r2
+cmpg	r0,r2
+cmph	r0,r2
+cvtbf	r0,r2
+cvtbd	r0,r2
+cvtbg	r0,r2
+cvtbh	r0,r2
+cvtwf	r0,r2
+cvtwd	r0,r2
+cvtwg	r0,r2
+cvtwh	r0,r2
+cvtlf	r0,r2
+cvtld	r0,r2
+cvtlg	r0,r2
+cvtlh	r0,r2
+cvtfb	r0,r2
+cvtdb	r0,r2
+cvtgb	r0,r2
+cvthb	r0,r2
+cvtfw	r0,r2
+cvtdw	r0,r2
+cvtgw	r0,r2
+cvthw	r0,r2
+cvtfl	r0,r2
+cvtdl	r0,r2
+cvtgl	r0,r2
+cvthl	r0,r2
+cvtrfl	r0,r2
+cvtrdl	r0,r2
+cvtrgl	r0,r2
+cvtrhl	r0,r2
+cvtfd	r0,r2
+cvtfg	r0,r2
+cvtfh	r0,r2
+cvtdf	r0,r2
+cvtdh	r0,r2
+cvtgf	r0,r2
+cvtgh	r0,r2
+cvthf	r0,r2
+cvthd	r0,r2
+cvthg	r0,r2
+divf2	r0,r1
+divf3	r0,r2,r4
+divd2	r0,r1
+divd3	r0,r2,r4
+divg2	r0,r1
+divg3	r0,r2,r4
+divh2	r0,r1
+divh3	r0,r2,r4
+emodf	(r0),(r1),(r2),(r3),(r4)
+emodd	(r0),(r1),(r2),(r3),(r4)
+emodg	(r0),(r1),(r2),(r3),(r4)
+emodh	(r0),(r1),(r2),(r3),(r4)
+mnegf	r0,r2
+mnegd	r0,r2
+mnegg	r0,r2
+mnegh	r0,r2
+movf	r0,r2
+movd	r0,r2
+movg	r0,r2
+movh	r0,r2
+mulf2	r0,r1
+mulf3	r0,r2,r4
+muld2	r0,r1
+muld3	r0,r2,r4
+mulg2	r0,r1
+mulg3	r0,r2,r4
+mulh2	r0,r1
+mulh3	r0,r2,r4
+polyf	r0,r2,(sp)
+polyd	r0,r2,(sp)
+polyg	r0,r2,(sp)
+polyh	r0,r2,(sp)
+subf2	r0,r1
+subf3	r0,r2,r4
+subd2	r0,r1
+subd3	r0,r2,r4
+subg2	r0,r1
+subg3	r0,r2,r4
+subh2	r0,r1
+subh3	r0,r2,r4
+tstf	r0
+tstd	r0
+tstg	r0
+tsth	r0
+
+!* Character string instructions */
+
+cmpc3	r0,(sp),(r1)
+cmpc5	(r0),(r1),(r2),(r3),(r4)
+locc	(r0),(r1),(r2)
+matchc	(r0),(r1),(r2),(r3)
+movc3	r0,(sp),(r1)
+movc5	(r0),(r1),(r2),(r3),(r4)
+movtc	(r0),(r1),(r2),(r3),(r4),(r4)
+movtuc	(r0),(r1),(r2),(r3),(r4),(r4)
+scanc	(r0),(r1),(r2),(r3)
+skpc	r0,(sp),(r1)
+spanc	(r0),(r1),(r2),(r3)
+
+!* Cyclic redundancy check instructions */
+
+crc	(r0),(r1),(r2),(r3)
+
+!* Decimal string instructions */
+
+addp4	(r0),(r1),(r2),(r3)
+addp6	(r0),(r1),(r2),(r3),(r4),(r4)
+ashp	(r0),(r1),(r2),(r3),(r4),(r4)
+cmpp3	r0,(sp),(r1)
+cmpp4	(r0),(r1),(r2),(r3)
+cvtlp	(r0),(r1),(r2)
+cvtpl	(r0),(r1),(r2)
+cvtps	(r0),(r1),(r2),(r3)
+cvtpt	(r0),(r1),(r2),(r3),(r4)
+cvtsp	(r0),(r1),(r2),(r3)
+cvttp	(r0),(r1),(r2),(r3),(r4)
+divp	(r0),(r1),(r2),(r3),(r4),(r4)
+movp	(r0),(r1),(r2)
+mulp	(r0),(r1),(r2),(r3),(r4),(r4)
+subp4	(r0),(r1),(r2),(r3)
+subp6	(r0),(r1),(r2),(r3),(r4),(r4)
+
+!* Edit instruction */
+
+editpc	(r0),(r1),(r2),(r3)
+
+!* Other VAX-11 instructions */
+
+bugw	_main
+bugl	_main
+
+prober	(r0),(r1),(r2)
+probew	(r0),(r1),(r2)
+
+rei
+chmk	r0
+chme	r0
+chms	r0
+chmu	r0
+
+ldpctx
+svpctx
+mtpr	r0,r1
+mfpr	r0,r1
+
+! test some addressing modes
+_main2:
+.data2 0x0
+pushal	_xxx
+pushal	_main
+pushal	_main2
+pushal	*_xxx
+pushal	*_main
+pushal	*_main2
+movl	$_xxx,-(sp)
+movl	$_main2,-(sp)
+movl	*$_main2,-(sp)
+movl	(sp)+,r9
+movl	*(sp)+,r9
+movl	(r0),r9
+movl	12(r0),r9
+movl	*12(r0),r9
+movl	_xxx(r0),r9
+movl	*_xxx(r0),r9
+movl	*_xxx(r0)[r1],r9
+movb	*_xxx(r0)[r1],r9
+movw	*_xxx(r0)[r1],r9
+
+
+.sect .rom
+_xxx:
+	.data2 0