1//Original:/testcases/core/c_pushpopmultiple_preg/c_pushpopmultiple_preg.dsp
2// Spec Reference: pushpopmultiple preg
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8	FP = SP;
9
10	imm32 r0, 0x00000000;
11	ASTAT = r0;
12
13	P1 = 0xa1 (X);
14	P2 = 0xa2 (X);
15	P3 = 0xa3 (X);
16	P4 = 0xa4 (X);
17	P5 = 0xa5 (X);
18	[ -- SP ] = ( P5:1 );
19	P1 = 0;
20	P2 = 0;
21	P3 = 0;
22	P4 = 0;
23	P5 = 0;
24	( P5:1 ) = [ SP ++ ];
25	CHECKREG p1, 0x000000a1;
26	CHECKREG p2, 0x000000a2;
27	CHECKREG p3, 0x000000a3;
28	CHECKREG p4, 0x000000a4;
29	CHECKREG p5, 0x000000a5;
30
31	P2 = 0xb2 (X);
32	P3 = 0xb3 (X);
33	P4 = 0xb4 (X);
34	P5 = 0xb5 (X);
35	[ -- SP ] = ( P5:2 );
36	P2 = 0;
37	P3 = 0;
38	P4 = 0;
39	P5 = 0;
40	( P5:2 ) = [ SP ++ ];
41	CHECKREG p1, 0x000000a1;
42	CHECKREG p2, 0x000000b2;
43	CHECKREG p3, 0x000000b3;
44	CHECKREG p4, 0x000000b4;
45	CHECKREG p5, 0x000000b5;
46
47	P3 = 0xc3 (X);
48	P4 = 0xc4 (X);
49	P5 = 0xc5 (X);
50	[ -- SP ] = ( P5:3 );
51	P3 = 0;
52	P4 = 0;
53	P5 = 0;
54	( P5:3 ) = [ SP ++ ];
55	CHECKREG p1, 0x000000a1;
56	CHECKREG p2, 0x000000b2;
57	CHECKREG p3, 0x000000c3;
58	CHECKREG p4, 0x000000c4;
59	CHECKREG p5, 0x000000c5;
60
61	P4 = 0xd4 (X);
62	P5 = 0xd5 (X);
63	[ -- SP ] = ( P5:4 );
64	P4 = 0;
65	P5 = 0;
66	( P5:4 ) = [ SP ++ ];
67	CHECKREG p1, 0x000000a1;
68	CHECKREG p2, 0x000000b2;
69	CHECKREG p3, 0x000000c3;
70	CHECKREG p4, 0x000000d4;
71	CHECKREG p5, 0x000000d5;
72
73	P5 = 0xe5 (X);
74	[ -- SP ] = ( P5:5 );
75	P5 = 0;
76	( P5:5 ) = [ SP ++ ];
77	CHECKREG p1, 0x000000a1;
78	CHECKREG p2, 0x000000b2;
79	CHECKREG p3, 0x000000c3;
80	CHECKREG p4, 0x000000d4;
81	CHECKREG p5, 0x000000e5;
82
83	pass
84