1# frv testcase for mdsubaccs $ACC40Si,$ACC40Sk
2# mach: fr400
3
4	.include "testutils.inc"
5
6	start
7
8	.global mdsubaccs
9mdsubaccs:
10	set_accg_immed	0,accg0
11	set_acc_immed	0x00000000,acc0
12	set_accg_immed	0,accg1
13	set_acc_immed	0x00000000,acc1
14	set_accg_immed	0,accg2
15	set_acc_immed	0xdead0000,acc2
16	set_accg_immed	0,accg3
17	set_acc_immed	0x0000beef,acc3
18	mdsubaccs	acc0,acc2
19	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
20	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
21	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
22	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt not set
23	test_accg_immed	0,accg2
24	test_acc_limmed	0x0000,0x0000,acc2
25	test_accg_immed	0,accg3
26	test_acc_limmed	0xdeac,0x4111,acc3
27
28	set_accg_immed	0,accg0
29	set_acc_immed	0x0000dead,acc0
30	set_accg_immed	0,accg1
31	set_acc_immed	0xbeef0000,acc1
32	set_accg_immed	0,accg2
33	set_acc_immed	0x12345678,acc2
34	set_accg_immed	0,accg3
35	set_acc_immed	0x11111111,acc3
36	mdsubaccs	acc0,acc2
37	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
38	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
39	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
40	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt not set
41	test_accg_immed	0xff,accg2
42	test_acc_limmed	0x4111,0xdead,acc2
43	test_accg_immed	0,accg3
44	test_acc_limmed	0x0123,0x4567,acc3
45
46	set_accg_immed	0,accg0
47	set_acc_immed	0x12345678,acc0
48	set_accg_immed	0,accg1
49	set_acc_immed	0xffffffff,acc1
50	set_accg_immed	0,accg2
51	set_acc_immed	0x12345678,acc2
52	set_accg_immed	0xff,accg3
53	set_acc_immed	0xffffffff,acc3
54	mdsubaccs	acc0,acc2
55	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
56	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
57	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
58	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt not set
59	test_accg_immed	0xff,accg2
60	test_acc_limmed	0x1234,0x5679,acc2
61	test_accg_immed	0,accg3
62	test_acc_limmed	0x1234,0x5679,acc3
63
64	set_spr_immed	0,msr0
65	set_accg_immed	0x7f,accg0
66	set_acc_immed	0xfffffffe,acc0
67	set_accg_immed	0xff,accg1
68	set_acc_immed	0xfffffffe,acc1
69	set_accg_immed	0x80,accg2
70	set_acc_immed	0x00000001,acc2
71	set_accg_immed	0,accg3
72	set_acc_immed	0x00000002,acc3
73	mdsubaccs	acc0,acc2
74	test_spr_bits	0x3c,2,0xc,msr0		; msr0.sie is set
75	test_spr_bits	2,1,1,msr0		; msr0.ovf set
76	test_spr_bits	1,0,1,msr0		; msr0.aovf set
77	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt set
78	test_accg_immed	0x7f,accg2
79	test_acc_limmed	0xffff,0xffff,acc2
80	test_accg_immed	0x80,accg3
81	test_acc_limmed	0x0000,0x0000,acc3
82
83	set_spr_immed	0,msr0
84	set_accg_immed	0,accg0
85	set_acc_immed	0x00000001,acc0
86	set_accg_immed	0,accg1
87	set_acc_immed	0x00000001,acc1
88	set_accg_immed	0,accg2
89	set_acc_immed	0x00000001,acc2
90	set_accg_immed	0x80,accg3
91	set_acc_immed	0x00000000,acc3
92	mdsubaccs	acc0,acc2
93	test_spr_bits	0x3c,2,4,msr0		; msr0.sie is set
94	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
95	test_spr_bits	1,0,1,msr0		; msr0.aovf set
96	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt set
97	test_accg_immed	0,accg2
98	test_acc_limmed	0x0000,0x0000,acc2
99	test_accg_immed	0x7f,accg3
100	test_acc_limmed	0xffff,0xffff,acc3
101
102	pass
103