1# source file to test assembly of mips64r2 instructions
2# (assumes that mips32r2 instructions will be tested separately for mips64r2.)
3
4        .set noreorder
5	.set noat
6
7	.text
8text_label:
9
10      # unprivileged CPU instructions
11
12	# Test macro's ability to turn "dext" into "dext", "dextm" and
13	# "dextu" as appropriate.  Also, add some explicit tests of the
14	# actual instructions.
15	dext	$2, $3, 0, 1	# dext
16	dext	$2, $3, 0, 32	# dext
17	dext	$2, $3, 0, 33	# dextm
18	dext	$2, $3, 0, 64	# dextm
19	dext	$2, $3, 31, 1	# dext
20	dext	$2, $3, 31, 32	# dext
21	dext	$2, $3, 31, 33	# dextm
22	dext	$2, $3, 32, 1	# dextu
23	dext	$2, $3, 32, 32	# dextu
24	dext	$2, $3, 63, 1	# dextu
25	dextm	$2, $3, 10, 44
26	dextu	$2, $3, 42, 12
27
28	# Test macro's ability to turn "dins" into "dins", "dinsm" and
29	# "dinsu" as appropriate.  Also, add some explicit tests of the
30	# non-macro instructions.
31	dins	$2, $3, 0, 1	# dins
32	dins	$2, $3, 0, 32	# dins
33	dins	$2, $3, 0, 33	# dinsm
34	dins	$2, $3, 0, 64	# dinsm
35	dins	$2, $3, 31, 1	# dins
36	dins	$2, $3, 31, 2	# dinsm
37	dins	$2, $3, 31, 33	# dinsm
38	dins	$2, $3, 32, 1	# dinsu
39	dins	$2, $3, 32, 32	# dinsu
40	dins	$2, $3, 63, 1	# dinsu
41	dinsm	$2, $3, 10, 44
42	dinsu	$2, $3, 42, 12
43
44	# This file checks that in fact HW rotate will
45	# be used for this arch, and checks assembly
46	# of the official MIPS mnemonics.  (Note that disassembly
47	# uses the traditional "dror", "dror32" and "drorv"
48	# mnemonics.) Additional rotate tests are done by rol64-hw.d.
49	drotl	$25, $10, 4	# dror32
50	drotr	$25, $10, 4	# dror
51	drotl	$25, $10, 36	# dror
52	drotr	$25, $10, 36	# dror32
53	drotl	$25, $10, $4	# neg / drorv
54	drotr	$25, $10, $4	# drorv
55	drotr32	$25, $10, 4	# dror32
56	drotrv	$25, $10, $4	# drorv
57
58	dsbh	$7
59	dsbh	$8, $10
60
61	dshd	$7
62	dshd	$8, $10
63
64# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
65	.space  8
66