blob: 43b1dd6bfa622f395cc762602a62d55970ec68f2 [file] [log] [blame]
! Verify that minimum support is provided as per SH-5/ST50-047-02.
.text
.mode shmedia
start:
! Both all-upper and all-lower must be supported. PTA/PTB without /L
! or /U is equivalent to with /L
ld.l r1,4,r1
LD.L r1,4,r1
pta/l .L1,tr0
PTA/L .L1,tr0
pta/u .L1,tr0
PTA/U .L1,tr0
pta/l .L1,tr0
PTA/L .L1,tr0
ptb/u .L2,tr0
PTB/U .L2,tr0
ptb/l .L2,tr0
PTB/L .L2,tr0
pta .L1,tr0
PTA .L1,tr0
ptb .L2,tr0
PTB .L2,tr0
.L1:
.mode shcompact
.L2:
.align 2
.mode shmedia
! All register names accepted, either case.
or r0,r32,r63
GETCON CR0,R0
getcon cr63,r0
GETTR TR0,R0
gettr tr7,r0
FMOV.S FR0,FR63
fmov.d dr0,dr62
FTRV.S MTRX0,FV0,fv0
ftrv.s mtrx48,FV60,FV60
! All control register names
getcon sr,r0
getcon ssr,r0
getcon pssr,r0
getcon intevt,r0
getcon expevt,r0
getcon pexpevt,r0
getcon tra,r0
getcon spc,r0
getcon pspc,r0
getcon resvec,r0
getcon vbr,r0
getcon tea,r0
getcon dcr,r0
getcon kcr0,r0
getcon kcr1,r0
getcon ctc,r0
getcon usr,r0
! immediates
.mode shcompact
s1:
mov #4,r0
.align 2
.mode shmedia
s2:
movi 4,r0
! Scaled operands - user gives scaled value
.mode shcompact
s3:
mov.l @(8,r0),r0
.align 2
.mode shmedia
s4:
ld.uw r0,2,r0
ld.w r0,2,r0
st.w r0,2,r0
ld.l r0,4,r0
st.l r0,4,r0
fld.s r0,4,fr0
fst.s r0,4,fr0
pta .+4,tr0
ptb .+7,tr0
ld.q r0,8,r0
st.q r0,8,r0
fld.d r0,8,dr0
fst.d r0,8,dr0
fld.p r0,8,fp0
fst.p r0,8,fp0
alloco r0,32
icbi r0,32
ocbi r0,32
ocbp r0,32
ocbwb r0,32
prefi r0,32
.mode shcompact
s5:
mov.w @(6,pc),r0
mov.w @(2,r0),r0
mov.w @(2,gbr),r0
mov.w r0,@(2,r0)
mov.w r0,@(2,gbr)
bf .+6
bt .+6
bra .+6
bsr .+6
mov.l @(2,pc),r0
mov.l @(4,r0),r0
mov.l @(4,gbr),r0
mova @(8,pc),r0
mov.l r0,@(4,r0)
mov.l r0,@(4,gbr)
! branchlabel vs datalabel
.align 2
.mode shmedia
s6:
.long .L3
.long .L3 + 4
.long datalabel .L3
.long DATALABEL .L3
.L3:
.mode shcompact
s7:
.long .L4
.long .L5
.L4:
.align 2
.mode shmedia
s8:
movi (.L4 >> 16) & 65535,r0
shori .L4 & 65535, r0
ptabs r0,tr0
blink tr0,r18
movi (.L5 >> 16) & 65535,r0
shori .L5 & 65535, r0
ptabs r0,tr0
blink tr0,r18
.L5:
movi (.L4-DATALABEL .L6), r0
.L6:
movi (.L5-DATALABEL .L7), r0
.L7:
pt .L5,tr0
! Expressions
! Symbols
abcdefghijklmnopqrstuvwxyz0123456789_:
.long abcdefghijklmnopqrstuvwxyz0123456789_
_x:
.long _x
! program counter
movi .L7-$,r0
.L8: movi .L7-.L8,r0
.mode shcompact
s9:
mova @(litpool-$,pc), r0
mov.l @r1,r0
add r1,r0
bsrf r0
litpool:
.long s10 - DATALABEL $
! operators
.align 2
.mode shmedia
s10:
movi 8+1,r0
movi 8-1,r0
movi 8<<1,r0
movi 8>>1,r0
movi ~1,r0
movi 5&3,r0
movi 8|1,r0
movi 8*3,r0
movi 24/3,r0