| //Original:/testcases/core/c_pushpopmultiple_preg/c_pushpopmultiple_preg.dsp | |
| // Spec Reference: pushpopmultiple preg | |
| # mach: bfin | |
| .include "testutils.inc" | |
| start | |
| FP = SP; | |
| imm32 r0, 0x00000000; | |
| ASTAT = r0; | |
| P1 = 0xa1 (X); | |
| P2 = 0xa2 (X); | |
| P3 = 0xa3 (X); | |
| P4 = 0xa4 (X); | |
| P5 = 0xa5 (X); | |
| [ -- SP ] = ( P5:1 ); | |
| P1 = 0; | |
| P2 = 0; | |
| P3 = 0; | |
| P4 = 0; | |
| P5 = 0; | |
| ( P5:1 ) = [ SP ++ ]; | |
| CHECKREG p1, 0x000000a1; | |
| CHECKREG p2, 0x000000a2; | |
| CHECKREG p3, 0x000000a3; | |
| CHECKREG p4, 0x000000a4; | |
| CHECKREG p5, 0x000000a5; | |
| P2 = 0xb2 (X); | |
| P3 = 0xb3 (X); | |
| P4 = 0xb4 (X); | |
| P5 = 0xb5 (X); | |
| [ -- SP ] = ( P5:2 ); | |
| P2 = 0; | |
| P3 = 0; | |
| P4 = 0; | |
| P5 = 0; | |
| ( P5:2 ) = [ SP ++ ]; | |
| CHECKREG p1, 0x000000a1; | |
| CHECKREG p2, 0x000000b2; | |
| CHECKREG p3, 0x000000b3; | |
| CHECKREG p4, 0x000000b4; | |
| CHECKREG p5, 0x000000b5; | |
| P3 = 0xc3 (X); | |
| P4 = 0xc4 (X); | |
| P5 = 0xc5 (X); | |
| [ -- SP ] = ( P5:3 ); | |
| P3 = 0; | |
| P4 = 0; | |
| P5 = 0; | |
| ( P5:3 ) = [ SP ++ ]; | |
| CHECKREG p1, 0x000000a1; | |
| CHECKREG p2, 0x000000b2; | |
| CHECKREG p3, 0x000000c3; | |
| CHECKREG p4, 0x000000c4; | |
| CHECKREG p5, 0x000000c5; | |
| P4 = 0xd4 (X); | |
| P5 = 0xd5 (X); | |
| [ -- SP ] = ( P5:4 ); | |
| P4 = 0; | |
| P5 = 0; | |
| ( P5:4 ) = [ SP ++ ]; | |
| CHECKREG p1, 0x000000a1; | |
| CHECKREG p2, 0x000000b2; | |
| CHECKREG p3, 0x000000c3; | |
| CHECKREG p4, 0x000000d4; | |
| CHECKREG p5, 0x000000d5; | |
| P5 = 0xe5 (X); | |
| [ -- SP ] = ( P5:5 ); | |
| P5 = 0; | |
| ( P5:5 ) = [ SP ++ ]; | |
| CHECKREG p1, 0x000000a1; | |
| CHECKREG p2, 0x000000b2; | |
| CHECKREG p3, 0x000000c3; | |
| CHECKREG p4, 0x000000d4; | |
| CHECKREG p5, 0x000000e5; | |
| pass |