blob: 1a2c3a98ad6233cadfa9df244b13e04423dfd371 [file] [log] [blame]
//Original:testcases/core/c_ldst_st_p_d_mm_b/c_ldst_st_p_d_mm_b.dsp
// Spec Reference: c_ldst st_p-- b byte
# mach: bfin
.include "testutils.inc"
start
// set all regs
INIT_I_REGS -1;
init_b_regs 0;
init_l_regs 0;
init_m_regs -1;
I0 = P3;
I2 = SP;
imm32 r0, 0x0a231507;
imm32 r1, 0x1b342618;
imm32 r2, 0x2c453729;
imm32 r3, 0x3d56483a;
imm32 r4, 0x4e67594b;
imm32 r5, 0x5f786a5c;
imm32 r6, 0x60897b6d;
imm32 r7, 0x719a8c7e;
// reset values
I1 = P3; P3 = I0; I3 = SP; SP = I2;
loadsym p5, DATA_ADDR_1, 0x20;
loadsym p1, DATA_ADDR_2, 0x20;
loadsym p2, DATA_ADDR_3, 0x20;
loadsym i1, DATA_ADDR_4, 0x20;
loadsym p4, DATA_ADDR_5, 0x20;
loadsym fp, DATA_ADDR_6, 0x20;
loadsym i3, DATA_ADDR_7, 0x20;
P3 = I1; SP = I3;
B [ P5 -- ] = R0;
B [ P1 -- ] = R1;
B [ P2 -- ] = R2;
B [ P3 -- ] = R3;
B [ P4 -- ] = R4;
B [ FP -- ] = R5;
B [ SP -- ] = R6;
B [ P5 -- ] = R1;
B [ P1 -- ] = R2;
B [ P2 -- ] = R3;
B [ P3 -- ] = R4;
B [ P4 -- ] = R5;
B [ FP -- ] = R6;
B [ SP -- ] = R7;
B [ P5 -- ] = R2;
B [ P1 -- ] = R3;
B [ P2 -- ] = R4;
B [ P3 -- ] = R5;
B [ P4 -- ] = R6;
B [ FP -- ] = R7;
B [ SP -- ] = R0;
B [ P5 -- ] = R3;
B [ P1 -- ] = R4;
B [ P2 -- ] = R5;
B [ P3 -- ] = R6;
B [ P4 -- ] = R7;
B [ FP -- ] = R0;
B [ SP -- ] = R1;
B [ P5 -- ] = R4;
B [ P1 -- ] = R5;
B [ P2 -- ] = R6;
B [ P3 -- ] = R7;
B [ P4 -- ] = R0;
B [ FP -- ] = R1;
B [ SP -- ] = R2;
B [ P5 -- ] = R5;
B [ P1 -- ] = R6;
B [ P2 -- ] = R7;
B [ P3 -- ] = R0;
B [ P4 -- ] = R1;
B [ FP -- ] = R2;
B [ SP -- ] = R3;
B [ P5 -- ] = R6;
B [ P1 -- ] = R7;
B [ P2 -- ] = R0;
B [ P3 -- ] = R1;
B [ P4 -- ] = R2;
B [ FP -- ] = R3;
B [ SP -- ] = R4;
B [ P5 -- ] = R7;
B [ P1 -- ] = R0;
B [ P2 -- ] = R1;
B [ P3 -- ] = R2;
B [ P4 -- ] = R3;
B [ FP -- ] = R4;
B [ SP -- ] = R5;
I1 = P3; P3 = I0; I3 = SP; SP = I2;
loadsym p5, DATA_ADDR_1, 0x20;
loadsym p1, DATA_ADDR_2, 0x20;
loadsym p2, DATA_ADDR_3, 0x20;
loadsym i1, DATA_ADDR_4, 0x20;
loadsym p4, DATA_ADDR_5, 0x20;
loadsym fp, DATA_ADDR_6, 0x20;
loadsym i3, DATA_ADDR_7, 0x20;
P3 = I1; SP = I3;
R0 = [ P1 -- ];
R1 = [ P2 -- ];
R2 = [ P3 -- ];
R3 = [ P4 -- ];
R4 = [ P5 -- ];
R5 = [ FP -- ];
R6 = [ SP -- ];
CHECKREG r1, 0x00000029;
CHECKREG r2, 0x0000003A;
CHECKREG r3, 0x0000004B;
CHECKREG r4, 0x00000007;
CHECKREG r5, 0x0000005C;
CHECKREG r6, 0xE0E1E26D;
CHECKREG r7, 0x719A8C7E;
R1 = [ P1 -- ];
R2 = [ P2 -- ];
R3 = [ P3 -- ];
R4 = [ P4 -- ];
R5 = [ P5 -- ];
R6 = [ FP -- ];
R7 = [ SP -- ];
CHECKREG r1, 0x293A4B5C;
CHECKREG r2, 0x3A4B5C6D;
CHECKREG r3, 0x4B5C6D7E;
CHECKREG r4, 0x5C6D7E07;
CHECKREG r5, 0x18293A4B;
CHECKREG r6, 0x6D7E0718;
CHECKREG r7, 0x7E071829;
R3 = [ P1 -- ];
R4 = [ P2 -- ];
R5 = [ P3 -- ];
R6 = [ P4 -- ];
R7 = [ P5 -- ];
R0 = [ FP -- ];
R1 = [ SP -- ];
CHECKREG r1, 0x3A4B5CDB;
CHECKREG r2, 0x3A4B5C6D;
CHECKREG r3, 0x6D7E073B;
CHECKREG r4, 0x7E07185B;
CHECKREG r5, 0x0718297B;
CHECKREG r6, 0x18293A9B;
CHECKREG r7, 0x5C6D7E1B;
P3 = I0; SP = I2;
pass
// Pre-load memory with known data
// More data is defined than will actually be used
.data
DATA_ADDR_1:
.dd 0x00010203
.dd 0x04050607
.dd 0x08090A0B
.dd 0x0C0D0E0F
.dd 0x10111213
.dd 0x14151617
.dd 0x18191A1B
.dd 0x1C1D1E1F
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
DATA_ADDR_2:
.dd 0x20212223
.dd 0x24252627
.dd 0x28292A2B
.dd 0x2C2D2E2F
.dd 0x30313233
.dd 0x34353637
.dd 0x38393A3B
.dd 0x3C3D3E3F
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
DATA_ADDR_3:
.dd 0x40414243
.dd 0x44454647
.dd 0x48494A4B
.dd 0x4C4D4E4F
.dd 0x50515253
.dd 0x54555657
.dd 0x58595A5B
.dd 0x5C5D5E5F
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
DATA_ADDR_4:
.dd 0x60616263
.dd 0x64656667
.dd 0x68696A6B
.dd 0x6C6D6E6F
.dd 0x70717273
.dd 0x74757677
.dd 0x78797A7B
.dd 0x7C7D7E7F
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
DATA_ADDR_5:
.dd 0x80818283
.dd 0x84858687
.dd 0x88898A8B
.dd 0x8C8D8E8F
.dd 0x90919293
.dd 0x94959697
.dd 0x98999A9B
.dd 0x9C9D9E9F
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
DATA_ADDR_6:
.dd 0xA0A1A2A3
.dd 0xA4A5A6A7
.dd 0xA8A9AAAB
.dd 0xACADAEAF
.dd 0xB0B1B2B3
.dd 0xB4B5B6B7
.dd 0xB8B9BABB
.dd 0xBCBDBEBF
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
DATA_ADDR_7:
.dd 0xC0C1C2C3
.dd 0xC4C5C6C7
.dd 0xC8C9CACB
.dd 0xCCCDCECF
.dd 0xD0D1D2D3
.dd 0xD4D5D6D7
.dd 0xD8D9DADB
.dd 0xDCDDDEDF
.dd 0xE0E1E2E3
.dd 0xE4E5E6E7
.dd 0xE8E9EAEB
.dd 0xECEDEEEF
.dd 0xF0F1F2F3
.dd 0xF4F5F6F7
.dd 0xF8F9FAFB
.dd 0xFCFDFEFF
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000
.dd 0x00000000