.data
foodata: .word 42
.text
footext:
.global add
add:
add r0, r1
add #0, r2
.global add2
add2:
add2 #-1, r3
.global addc
addc:
addc r4, r5
.global addn
addn:
addn r6, r7
addn #15, r8
.global addn2
addn2:
addn2 #-16, r9
.global sub
sub:
sub r10, r11
.global subc
subc:
subc r12, r13
.global subn
subn:
subn r14, r15
.global cmp
cmp:
cmp ac, fp
cmp #1, sp
.global cmp2
cmp2:
cmp2 #-15, r0
.global and
and:
and r1, r2
and r3, @r4
.global andh
andh:
andh r5, @r6
.global andb
andb:
andb r7, @r8
.global or
or:
or r9, r10
or r11, @r12
.global orh
orh:
orh r13, @r14
.global orb
orb:
orb r15, @ac
.global eor
eor:
eor fp, sp
eor r0, @r1
.global eorh
eorh:
eorh r2, @r3
.global eorb
eorb:
eorb r4, @r5
.global bandl
bandl:
bandl #15, @r6
.global bandh
nadh:
bandh #7, @r7
.global borl
borl:
borl #3, @r8
.global borh
borh:
borh #13, @r9
.global beorl
beorl:
beorl #15, @r10
.global beorh
beorh:
beorh #1, @r11
.global btstl
btstl:
btstl #0, @r12
.global btsth
btsth:
btsth #8, @r13
.global mul
mul:
mul r14, r15
.global mulu
mulu:
mulu ac, fp
.global muluh
muluh:
muluh sp, r0
.global mulh
mulh:
mulh r1, r2
.global div0s
div0s:
div0s r3
.global div0u
div0u:
div0u r4
.global div1
div1:
div1 r5
.global div2
div2:
div2 r6
.global div3
div3:
div3
.global div4s
div4s:
div4s
.global lsl
lsl:
lsl r7, r8
lsl #3, r9
.global lsl2
lsl2:
lsl2 #0, r10
.global lsr
lsr:
lsr r11, r12
lsr #15, r13
.global lsr2
lsr2:
lsr2 #15, r14
.global asr
asr:
asr r15, ac
asr #6, fp
.global asr2
asr2:
asr2 #7, sp
.global ldi_8
ldi_8:
ldi:8 #0xff, r2
.global ld
ld:
ld @r3, r4
ld @(R13, r5), r6
ld @(R14, 0x1fc), r7
ld @(R15, 0x3c), r8
ld @r15+, r9
ld @r15+, ps
ld @R15+, tbr
ld @r15+, rp
ld @R15+, ssp
.global lduh
lduh:
lduh @r10, r11
lduh @(r13, r12), r13
lduh @(r14, #-256), r15
.global ldub
ldub:
ldub @ac, fp
ldub @(r13, sp), r0
ldub @(r14, -128), r1
.global st
st:
st r2, @r3
st r4, @(r13, r5)
st r6, @(r14, -512)
st r7, @(r15, 0x3c)
st r8, @ - r15
st MDH, @-r15
st PS, @ - r15
.global lsth
sth:
sth r9, @r10
sth r11, @(r13, r12)
sth r13, @(r14, 128)
.global stb
stb:
STB r14, @r15
stb r0, @(r13, r1)
STB r2, @(r14, -128)
.global mov
mov:
mov r3, r4
MOV mdl, r5
mov ps, r6
mov r7, usp
mov r8, ps
.global jmp
jmp:
jmp @r9
.global ret
ret:
ret
.global bra
bra:
bra footext
.global bno
bno:
bno footext
.global beq
beq:
beq footext
.global bne
bne:
bne footext
.global bc
bc:
bc footext
.global bnc
bnc:
bnc footext
.global bn
bn:
bn footext
.global bp
bp:
bp footext
.global bv
bv:
bv footext
.global bnv
bnv:
bnv footext
.global blt
blt:
blt footext
.global bge
bge:
bge footext
.global ble
ble:
ble footext
.global bgt
bgt:
bgt footext
.global bls
bls:
bls footext
.global bhi
bhi:
bhi footext
delay_footext:
.global jmp_d
jmp_d:
jmp:d @r11
nop
.global ret_d
ret_d:
ret:d
nop
.global bra_d
bra_d:
bra:D delay_footext
nop
.global bno_d
bno_d:
bno:d delay_footext
nop
.global beq_d
beq_d:
beq:D delay_footext
nop
.global bne_d
bne_d:
bne:d delay_footext
nop
.global bc_d
bc_d:
bc:d delay_footext
nop
.global bnc_d
bnc_d:
bnc:d delay_footext
nop
.global bn_d
bn_d:
bn:d delay_footext
nop
.global bp_d
bp_d:
bp:d delay_footext
nop
.global bv_d
bv_d:
bv:d delay_footext
nop
.global bnv_d
bnv_d:
bnv:d delay_footext
nop
.global blt_d
blt_d:
blt:d delay_footext
nop
.global bge_d
bge_d:
bge:d delay_footext
nop
.global ble_d
ble_d:
ble:d delay_footext
nop
.global bgt_d
bgt_d:
bgt:d delay_footext
nop
.global bls_d
bls_d:
bls:d delay_footext
nop
.global bhi_d
bhi_d:
bhi:d delay_footext
nop
.global ldres
ldres:
ldres @r2+, #8
.global stres
stres:
stres #15, @r3+
.global nop
nop:
nop
.global andccr
andccr:
andccr #255
.global orccr
orccr:
orccr #125
.global stilm
stilm:
stilm #97
.global addsp
addsp:
addsp #-512
.global extsb
extsb:
extsb r9
.global extub
extub:
extub r10
.global extsh
extsh:
extsh r11
.global extuh
extuh:
extuh r12
.global enter
enter:
enter #1020
.global leave
leave:
leave
.global xchb
xchb:
xchb @r14, r15
.global ldi_32
ldi_32:
ldi:32 #0x12345678, r0
.global copop
copop:
copop #15, #1, cr3, cr4
copop #15, #4, cr5, cr6
copop #15, #255, cr7, cr0
.global copld
copld:
copld #0, #0, r4, cr0
.global copst
copst:
copst #7, #2, cr1, r5
.global copsv
copsv:
copsv #8, #3, cr2, r6
.global ldm0
ldm0:
ldm0 (r0, r2, r3, r7)
.global ldm1
ldm1:
ldm1 (r8, r11, r15)
.global stm0
stm0:
stm0 (r2, r3)
.global stm1
stm1:
stm1 (r13, r14)
.global call
call:
call footext
call @r10
.global call_d
call_d:
call:D footext
nop
call:d @r12
nop
.global dmov
dmov:
dmov @0x88, r13
dmov r13, @0x54
dmov @0x44, @r13+
dmov @R13+, @0x2
dmov @0x2c, @-r15
dmov @r15+, @38
.global dmovh
dmovh:
dmovh @0x88, r13
dmovh r13, @0x52
dmovh @0x34, @r13 +
dmovh @r13+, @0x52
.global dmovb
dmovb:
dmovb @0x91, r13
dmovb r13, @0x53
dmovb @71, @r13+
dmovb @r13+, @0x0
.global ldi_20
ldi_20:
ldi:20 #0x000fffff, r1
finish:
ldi:32 #0x8000,r0
mov r0,ssp
ldi:32 #1,r0
int #10
.global inte
inte:
inte
.global reti
reti:
reti