blob: bb9fff24dcccfb76d22e9fc92b1f09244c783408 [file] [log] [blame]
# Opcode test for PDP-11.
# Copyright (C) 2002-2016 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
foo: .word 0
bar: .word foo
start: halt
start2: wait
rti
bpt
iot
reset
rtt
mfpt
jmp (r1)+
rts r2
spl 3
nop
clc
clv
clz
cln
ccc
sec
sev
sez
sen
scc
swab pc
1: br 1b
bne 1b
beq 1b
bge 1b
blt 1b
bgt 1b
ble 1b
jsr pc,@(sp)+
clr -(sp)
com r0
inc r1
dec r2
neg r3
adc r4
sbc r5
tst (sp)+
ror r5
rol r4
asr @10(r4)
asl 4(r5)
mark 2
mfpi sp
mtpi @$402
sxt r3
csm 2(r4)
tstset (r3)
wrtlck 2(r4)
mov r0,r1
cmp (r0),(r4)
bit (r0)+,-(r3)
bic foo,@bar
bis @(r1)+,@-(r5)
add 4(r3),@6(r3)
mul $10,r2
div 1b,r4
ash $3,r4
ashc $7,r2
xor r3,10(sp)
fadd r2
fsub r1
fmul r4
fdiv r0
l2dr r1
movc
movrc
movtc
locc
skpc
scanc
spanc
cmpc
matc
addn
subn
cmpn
cvtnl
cvtpn
cvtnp
ashn
cvtln
l3dr r5
addp
subp
cmpp
cvtpl
mulp
divp
ashp
cvtlp
movci
movrci
movtci
locci
skpci
scanci
spanci
cmpci
matci
addni
subni
cmpni
cvtnli
cvtpni
cvtnpi
ashni
cvtlni
addpi
subpi
cmppi
cvtpli
mulpi
divpi
ashpi
cvtlpi
med
2: xfc 42
sob r0,2b
bpl 2b
bmi 2b
bhi 2b
blos 2b
bvc 2b
bvs 2b
bcc 2b
bcs 2b
emt 69
sys 42
clrb (r3)
comb @-(r5)
incb @(sp)+
decb r3
negb foo
adcb @bar
sbcb -(r2)
tstb (r4)+
rorb r1
rolb r2
asrb r3
aslb r4
mtps $0340
mfpd sp
mtpd (r0)
mfps -(sp)
movb $17,foo
cmpb r1,(r2)
bitb $0117,r5
bicb $1,bar
bisb $2,@bar
sub r0,r5
cfcc
setf
seti
ldub
setd
setl
ldfps $1
stfps -(sp)
stst (r2)
clrf ac3
tstf ac1
absf ac2
negf ac0
mulf $0f0.25,ac1
modf ac5,ac0
addf foo,ac2
ldf @bar,ac1
subf ac4,ac3
cmpf ac5,ac2
stf ac1,-(sp)
divf $0f20.0,ac0
stexp ac2,r5
stcfi ac3,r0
stcff ac3,ac5
ldexp r0,ac2
ldcif r2,ac3
ldcff ac5,ac2
# aliases for some of these opcodes:
l2d r1
3: l3d r4
bhis 3b
blo 3b
trap 99
clrd ac3
tstd ac2
absd ac1
negd ac0
muld ac5,ac2
modd ac4,ac0
addd ac4,ac3
ldd bar,ac0
subd foo,ac2
cmpd ac5,ac2
std ac1,(r2)
divd (sp)+,ac3
stcfl ac2,r5
stcdi ac3,r0
stcdl ac2,r4
stcfd ac2,ac5
stcdf ac1,ac4
ldcid r0,ac1
ldclf r4,ac2
ldcld $01234567,ac3
ldcfd ac5,ac2
ldcdf ac4,ac0