xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/frv/mcpli.cgs (revision 70f7362772ba52b749c976fb5e86e39a8b2c9afc)
1# frv testcase for mcpli $FRi,$s6,$FRk
2# mach: fr400 fr550
3
4	.include "testutils.inc"
5
6	start
7
8	.global mcpli
9mcpli:
10	set_fr_iimmed   0xdead,0xbeef,fr8
11	set_fr_iimmed   0xbeef,0xdead,fr9
12	set_fr_iimmed   0x1234,0x5678,fr10
13	mcpli      	fr8,0x0,fr10	; Shift by 0
14	test_fr_iimmed  0xdeadbeef,fr10
15
16	set_fr_iimmed   0x1234,0x5678,fr10
17	mcpli      	fr8,0x1,fr10	; Shift by 1
18	test_fr_iimmed  0xbd5b7ddf,fr10
19
20	set_fr_iimmed   0x1234,0x5678,fr10
21	mcpli      	fr8,0x4,fr10	; Shift by 4
22	test_fr_iimmed  0xeadbeefd,fr10
23
24	set_fr_iimmed   0x1234,0x5678,fr10
25	mcpli      	fr8,0xc,fr10	; Shift by 12
26	test_fr_iimmed  0xdbeefead,fr10
27
28	set_fr_iimmed   0x1234,0x5678,fr10
29	mcpli      	fr8,0x1c,fr10	; Shift by 28
30	test_fr_iimmed  0xfeefdead,fr10
31
32	set_fr_iimmed   0x1234,0x5678,fr10
33	mcpli      	fr8,0x1f,fr10	; Shift by 31
34	test_fr_iimmed  0xbeefdead,fr10
35
36	; test again with truncated shift values
37	set_fr_iimmed   0x1234,0x5678,fr10
38	mcpli      	fr8,0x20,fr10	; Shift by 0
39	test_fr_iimmed  0xdeadbeef,fr10
40
41	set_fr_iimmed   0x1234,0x5678,fr10
42	mcpli      	fr8,0x21,fr10	; Shift by 1
43	test_fr_iimmed  0xbd5b7ddf,fr10
44
45	set_fr_iimmed   0x1234,0x5678,fr10
46	mcpli      	fr8,0x24,fr10	; Shift by 4
47	test_fr_iimmed  0xeadbeefd,fr10
48
49	set_fr_iimmed   0x1234,0x5678,fr10
50	mcpli      	fr8,0x2c,fr10	; Shift by 12
51	test_fr_iimmed  0xdbeefead,fr10
52
53	set_fr_iimmed   0x1234,0x5678,fr10
54	mcpli      	fr8,0x3c,fr10	; Shift by 28
55	test_fr_iimmed  0xfeefdead,fr10
56
57	set_fr_iimmed   0x1234,0x5678,fr10
58	mcpli      	fr8,0x3f,fr10	; Shift by 31
59	test_fr_iimmed  0xbeefdead,fr10
60
61	pass
62