Added test.s
This commit is contained in:
parent
699edcc81e
commit
f0c03173ef
458
mach/vax4/as/test.s
Normal file
458
mach/vax4/as/test.s
Normal file
|
@ -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
|
Loading…
Reference in a new issue