! 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
