1*1f154020SRobert Mustacchi/*
2*1f154020SRobert Mustacchi * This file and its contents are supplied under the terms of the
3*1f154020SRobert Mustacchi * Common Development and Distribution License ("CDDL"), version 1.0.
4*1f154020SRobert Mustacchi * You may only use this file in accordance with the terms of version
5*1f154020SRobert Mustacchi * 1.0 of the CDDL.
6*1f154020SRobert Mustacchi *
7*1f154020SRobert Mustacchi * A full copy of the text of the CDDL should have accompanied this
8*1f154020SRobert Mustacchi * source.  A copy of the CDDL is also available via the Internet at
9*1f154020SRobert Mustacchi * http://www.illumos.org/license/CDDL.
10*1f154020SRobert Mustacchi */
11*1f154020SRobert Mustacchi
12*1f154020SRobert Mustacchi/*
13*1f154020SRobert Mustacchi * Copyright 2018, Joyent, Inc.
14*1f154020SRobert Mustacchi */
15*1f154020SRobert Mustacchi
16*1f154020SRobert Mustacchi/*
17*1f154020SRobert Mustacchi * Test our disassembly of the RV32I instructions. Instructions are ordered per
18*1f154020SRobert Mustacchi * the ISA manual. Supervisor and CSR instructions are elsewhere.
19*1f154020SRobert Mustacchi */
20*1f154020SRobert Mustacchi
21*1f154020SRobert Mustacchi.text
22*1f154020SRobert Mustacchi.align 16
23*1f154020SRobert Mustacchi.globl libdis_test
24*1f154020SRobert Mustacchi.type libdis_test, @function
25*1f154020SRobert Mustacchilibdis_test:
26*1f154020SRobert Mustacchi	lui	ra, 0x00
27*1f154020SRobert Mustacchi	lui	ra, 0x23
28*1f154020SRobert Mustacchi	lui	ra, 0xfffff
29*1f154020SRobert Mustacchi	auipc	ra, 0x00
30*1f154020SRobert Mustacchi	auipc	ra, 0x23
31*1f154020SRobert Mustacchi	auipc	ra, 0xfffff
32*1f154020SRobert Mustacchi	/*
33*1f154020SRobert Mustacchi	 * Branches are not tested at this time as they basially always end up
34*1f154020SRobert Mustacchi	 * wanting to create which ends up not really lending itself to
35*1f154020SRobert Mustacchi	 * automated testing here.
36*1f154020SRobert Mustacchi	 */
37*1f154020SRobert Mustacchi	lb	s0, 0x7ff(s1)
38*1f154020SRobert Mustacchi	lb	s1, (s1)
39*1f154020SRobert Mustacchi	lb	s2, -0x800(s1)
40*1f154020SRobert Mustacchi	lh	s3, 0x7ff(s1)
41*1f154020SRobert Mustacchi	lh	s4, (s1)
42*1f154020SRobert Mustacchi	lh	s5, -0x800(s1)
43*1f154020SRobert Mustacchi	lw	s6, 0x7ff(s1)
44*1f154020SRobert Mustacchi	lw	s7, (s1)
45*1f154020SRobert Mustacchi	lw	s8, -0x800(s1)
46*1f154020SRobert Mustacchi	lbu	s7, 0x7ff(s1)
47*1f154020SRobert Mustacchi	lbu	s6, (s1)
48*1f154020SRobert Mustacchi	lbu	s5, -0x800(s1)
49*1f154020SRobert Mustacchi	lhu	s4, 0x7ff(s1)
50*1f154020SRobert Mustacchi	lhu	s3, (s1)
51*1f154020SRobert Mustacchi	lhu	s2, -0x800(s1)
52*1f154020SRobert Mustacchi	sb	t0, 0x7ff(t1)
53*1f154020SRobert Mustacchi	sb	t1, (t2)
54*1f154020SRobert Mustacchi	sb	t2, -0x800(t3)
55*1f154020SRobert Mustacchi	sh	t3, 0x7ff(t1)
56*1f154020SRobert Mustacchi	sh	t4, (t2)
57*1f154020SRobert Mustacchi	sh	t5, -0x800(t3)
58*1f154020SRobert Mustacchi	sw	t4, 0x7ff(t1)
59*1f154020SRobert Mustacchi	sw	t3, (t2)
60*1f154020SRobert Mustacchi	sw	t2, -0x800(t3)
61*1f154020SRobert Mustacchi	addi	ra, t0, 0x4
62*1f154020SRobert Mustacchi	addi	ra, t0, -0x4
63*1f154020SRobert Mustacchi	slti	ra, t0, 0x4
64*1f154020SRobert Mustacchi	slti	ra, t0, -0x4
65*1f154020SRobert Mustacchi	sltiu	ra, t0, 0x4
66*1f154020SRobert Mustacchi	sltiu	ra, t0, -0x4
67*1f154020SRobert Mustacchi	xori	ra, t0, 0x4
68*1f154020SRobert Mustacchi	xori	ra, t0, -0x4
69*1f154020SRobert Mustacchi	ori	ra, t0, 0x4
70*1f154020SRobert Mustacchi	ori	ra, t0, -0x4
71*1f154020SRobert Mustacchi	andi	ra, t0, 0x4
72*1f154020SRobert Mustacchi	andi	ra, t0, -0x4
73*1f154020SRobert Mustacchi	slli	t4, t5, 0x12
74*1f154020SRobert Mustacchi	srli	t4, t5, 0x13
75*1f154020SRobert Mustacchi	srai	t4, t5, 0x14
76*1f154020SRobert Mustacchi	add	s0, s1, s2
77*1f154020SRobert Mustacchi	sub	s1, s2, s3
78*1f154020SRobert Mustacchi	sll	s3, s4, s5
79*1f154020SRobert Mustacchi	slt	s4, s5, s6
80*1f154020SRobert Mustacchi	sltu	a0, a1, ra
81*1f154020SRobert Mustacchi	xor	s5, s6, s7
82*1f154020SRobert Mustacchi	srl	s6, s7, s8
83*1f154020SRobert Mustacchi	sra	s7, s8, s9
84*1f154020SRobert Mustacchi	or	s8, s9, s10
85*1f154020SRobert Mustacchi	and	s9, s10, s11
86*1f154020SRobert Mustacchi	fence
87*1f154020SRobert Mustacchi	fence	ow, ir
88*1f154020SRobert Mustacchi	fence	ir, ow
89*1f154020SRobert Mustacchi	fence	ior, iorw
90*1f154020SRobert Mustacchi	fence.i
91*1f154020SRobert Mustacchi.size libdis_test, [.-libdis_test]
92