1! Verify that minimum support is provided as per SH-5/ST50-047-02.
2
3	.text
4	.mode shmedia
5start:
6
7! Both all-upper and all-lower must be supported.  PTA/PTB without /L
8! or /U is equivalent to with /L
9
10	ld.l	r1,4,r1
11	LD.L	r1,4,r1
12	pta/l	.L1,tr0
13	PTA/L	.L1,tr0
14	pta/u	.L1,tr0
15	PTA/U	.L1,tr0
16	pta/l	.L1,tr0
17	PTA/L	.L1,tr0
18	ptb/u	.L2,tr0
19	PTB/U	.L2,tr0
20	ptb/l	.L2,tr0
21	PTB/L	.L2,tr0
22	pta	.L1,tr0
23	PTA	.L1,tr0
24	ptb	.L2,tr0
25	PTB	.L2,tr0
26.L1:
27	.mode shcompact
28.L2:
29	.align 2
30	.mode shmedia
31
32! All register names accepted, either case.
33
34	or	r0,r32,r63
35	GETCON	CR0,R0
36	getcon	cr63,r0
37	GETTR	TR0,R0
38	gettr	tr7,r0
39	FMOV.S	FR0,FR63
40	fmov.d	dr0,dr62
41	FTRV.S	MTRX0,FV0,fv0
42	ftrv.s	mtrx48,FV60,FV60
43
44! All control register names
45
46	getcon	sr,r0
47	getcon	ssr,r0
48	getcon	pssr,r0
49	getcon	intevt,r0
50	getcon	expevt,r0
51	getcon	pexpevt,r0
52	getcon	tra,r0
53	getcon	spc,r0
54	getcon	pspc,r0
55	getcon	resvec,r0
56	getcon	vbr,r0
57	getcon	tea,r0
58	getcon	dcr,r0
59	getcon	kcr0,r0
60	getcon	kcr1,r0
61	getcon	ctc,r0
62	getcon	usr,r0
63
64! immediates
65
66	.mode shcompact
67s1:
68	mov	#4,r0
69
70	.align 2
71	.mode shmedia
72s2:
73	movi	4,r0
74
75! Scaled operands - user gives scaled value
76
77	.mode shcompact
78s3:
79	mov.l	@(8,r0),r0
80
81	.align 2
82	.mode shmedia
83s4:
84	ld.uw	r0,2,r0
85	ld.w	r0,2,r0
86	st.w	r0,2,r0
87	ld.l	r0,4,r0
88	st.l	r0,4,r0
89	fld.s	r0,4,fr0
90	fst.s	r0,4,fr0
91	pta	.+4,tr0
92	ptb	.+7,tr0
93	ld.q	r0,8,r0
94	st.q	r0,8,r0
95	fld.d	r0,8,dr0
96	fst.d	r0,8,dr0
97	fld.p	r0,8,fp0
98	fst.p	r0,8,fp0
99	alloco	r0,32
100	icbi	r0,32
101	ocbi	r0,32
102	ocbp	r0,32
103	ocbwb	r0,32
104	prefi	r0,32
105
106	.mode	shcompact
107s5:
108	mov.w	@(6,pc),r0
109	mov.w	@(2,r0),r0
110	mov.w	@(2,gbr),r0
111	mov.w	r0,@(2,r0)
112	mov.w	r0,@(2,gbr)
113	bf	.+6
114	bt	.+6
115	bra	.+6
116	bsr	.+6
117	mov.l	@(2,pc),r0
118	mov.l	@(4,r0),r0
119	mov.l	@(4,gbr),r0
120	mova	@(8,pc),r0
121	mov.l	r0,@(4,r0)
122	mov.l	r0,@(4,gbr)
123
124! branchlabel vs datalabel
125
126	.align 2
127	.mode shmedia
128s6:
129	.long	.L3
130	.long	.L3 + 4
131	.long	datalabel .L3
132	.long	DATALABEL .L3
133.L3:
134	.mode	shcompact
135
136s7:
137	.long	.L4
138	.long	.L5
139.L4:
140
141	.align 2
142	.mode shmedia
143s8:
144
145	movi	(.L4 >> 16) & 65535,r0
146	shori	.L4 & 65535, r0
147	ptabs	r0,tr0
148	blink	tr0,r18
149
150	movi	(.L5 >> 16) & 65535,r0
151	shori	.L5 & 65535, r0
152	ptabs	r0,tr0
153	blink	tr0,r18
154.L5:
155
156	movi	(.L4-DATALABEL .L6), r0
157.L6:
158	movi	(.L5-DATALABEL .L7), r0
159.L7:
160
161	pt	.L5,tr0
162
163! Expressions
164
165! Symbols
166
167abcdefghijklmnopqrstuvwxyz0123456789_:
168	.long	abcdefghijklmnopqrstuvwxyz0123456789_
169_x:
170	.long	_x
171
172! program counter
173
174	movi	.L7-$,r0
175.L8:	movi	.L7-.L8,r0
176
177	.mode shcompact
178s9:
179	mova	@(litpool-$,pc), r0
180	mov.l	@r1,r0
181	add	r1,r0
182	bsrf	r0
183litpool:
184	.long	s10 - DATALABEL $
185
186! operators
187
188	.align 2
189	.mode shmedia
190s10:
191	movi	8+1,r0
192	movi	8-1,r0
193	movi	8<<1,r0
194	movi	8>>1,r0
195	movi	~1,r0
196	movi	5&3,r0
197	movi	8|1,r0
198	movi	8*3,r0
199	movi	24/3,r0
200