mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-06 12:09:26 +08:00
187 lines
3.5 KiB
ArmAsm
187 lines
3.5 KiB
ArmAsm
|
//Original:/testcases/core/c_alu2op_conv_mix/c_alu2op_conv_mix.dsp
|
||
|
// Spec Reference: alu2op convert mix
|
||
|
# mach: bfin
|
||
|
|
||
|
.include "testutils.inc"
|
||
|
start
|
||
|
|
||
|
|
||
|
|
||
|
imm32 r0, 0x00789abc;
|
||
|
imm32 r1, 0x12345678;
|
||
|
imm32 r2, 0x23456789;
|
||
|
imm32 r3, 0x3456789a;
|
||
|
imm32 r4, 0x856789ab;
|
||
|
imm32 r5, 0x96789abc;
|
||
|
imm32 r6, 0xa789abcd;
|
||
|
imm32 r7, 0xb89abcde;
|
||
|
R0 = R0.B (X);
|
||
|
R1 = R1.L (X);
|
||
|
R2 = R2.L (Z);
|
||
|
R3 = R3.B (X);
|
||
|
R4 = R4.B (Z);
|
||
|
R5 = - R5;
|
||
|
R6 = ~ R6;
|
||
|
R7 = R7.L (X);
|
||
|
CHECKREG r0, 0xFFFFFFBC;
|
||
|
CHECKREG r1, 0x00005678;
|
||
|
CHECKREG r2, 0x00006789;
|
||
|
CHECKREG r3, 0xFFFFFF9A;
|
||
|
CHECKREG r4, 0x000000AB;
|
||
|
CHECKREG r5, 0x69876544;
|
||
|
CHECKREG r6, 0x58765432;
|
||
|
CHECKREG r7, 0xFFFFBCDE;
|
||
|
|
||
|
imm32 r0, 0x01230002;
|
||
|
imm32 r1, 0x00374659;
|
||
|
imm32 r2, 0x93456789;
|
||
|
imm32 r3, 0xa456789a;
|
||
|
imm32 r4, 0xb56789ab;
|
||
|
imm32 r5, 0xc6789abc;
|
||
|
imm32 r6, 0xd789abcd;
|
||
|
imm32 r7, 0xe89abcde;
|
||
|
R6 = R0.B (X);
|
||
|
R7 = R1.L (X);
|
||
|
R0 = R2.L (Z);
|
||
|
R1 = R3.B (X);
|
||
|
R2 = R4.B (Z);
|
||
|
R3 = - R5;
|
||
|
R4 = ~ R6;
|
||
|
R5 = R7.L (X);
|
||
|
CHECKREG r0, 0x00006789;
|
||
|
CHECKREG r1, 0xFFFFFF9A;
|
||
|
CHECKREG r2, 0x000000AB;
|
||
|
CHECKREG r3, 0x39876544;
|
||
|
CHECKREG r4, 0xFFFFFFFD;
|
||
|
CHECKREG r5, 0x00004659;
|
||
|
CHECKREG r6, 0x00000002;
|
||
|
CHECKREG r7, 0x00004659;
|
||
|
|
||
|
imm32 r0, 0x51230002;
|
||
|
imm32 r1, 0x12345678;
|
||
|
imm32 r2, 0x91203450;
|
||
|
imm32 r3, 0x3456789a;
|
||
|
imm32 r4, 0x956789ab;
|
||
|
imm32 r5, 0x86789abc;
|
||
|
imm32 r6, 0xa789abcd;
|
||
|
imm32 r7, 0x789abcde;
|
||
|
R5 = R0.B (X);
|
||
|
R6 = R1.L (X);
|
||
|
R7 = R2.L (Z);
|
||
|
R0 = R3.B (X);
|
||
|
R1 = R4.B (Z);
|
||
|
R2 = - R5;
|
||
|
R3 = ~ R6;
|
||
|
R4 = R7.L (X);
|
||
|
CHECKREG r0, 0xFFFFFF9A;
|
||
|
CHECKREG r1, 0x000000AB;
|
||
|
CHECKREG r2, 0xFFFFFFFE;
|
||
|
CHECKREG r3, 0xFFFFA987;
|
||
|
CHECKREG r4, 0x00003450;
|
||
|
CHECKREG r5, 0x00000002;
|
||
|
CHECKREG r6, 0x00005678;
|
||
|
CHECKREG r7, 0x00003450;
|
||
|
|
||
|
imm32 r0, 0x01230002;
|
||
|
imm32 r1, 0x82345678;
|
||
|
imm32 r2, 0x93456789;
|
||
|
imm32 r3, 0x00000000;
|
||
|
imm32 r4, 0xb56789ab;
|
||
|
imm32 r5, 0xc6789abc;
|
||
|
imm32 r6, 0xd789abcd;
|
||
|
imm32 r7, 0xe89abcde;
|
||
|
R4 = R0.B (X);
|
||
|
R5 = R1.L (X);
|
||
|
R6 = R2.L (Z);
|
||
|
R7 = R3.B (X);
|
||
|
R0 = R4.B (Z);
|
||
|
R1 = - R5;
|
||
|
R2 = ~ R6;
|
||
|
R3 = R7.L (X);
|
||
|
CHECKREG r0, 0x00000002;
|
||
|
CHECKREG r1, 0xFFFFA988;
|
||
|
CHECKREG r2, 0xFFFF9876;
|
||
|
CHECKREG r3, 0x00000000;
|
||
|
CHECKREG r4, 0x00000002;
|
||
|
CHECKREG r5, 0x00005678;
|
||
|
CHECKREG r6, 0x00006789;
|
||
|
CHECKREG r7, 0x00000000;
|
||
|
|
||
|
imm32 r0, 0xadf00001;
|
||
|
imm32 r1, 0x12345678;
|
||
|
imm32 r2, 0x23456789;
|
||
|
imm32 r3, 0x3456789a;
|
||
|
imm32 r4, 0x00000000;
|
||
|
imm32 r5, 0x96789abc;
|
||
|
imm32 r6, 0xa789abcd;
|
||
|
imm32 r7, 0xb89abcde;
|
||
|
R3 = R0.B (X);
|
||
|
R4 = R1.L (X);
|
||
|
R5 = R2.L (Z);
|
||
|
R6 = R3.B (X);
|
||
|
R7 = R4.B (Z);
|
||
|
R0 = - R5;
|
||
|
R1 = ~ R6;
|
||
|
R2 = R7.L (X);
|
||
|
CHECKREG r0, 0xFFFF9877;
|
||
|
CHECKREG r1, 0xFFFFFFFE;
|
||
|
CHECKREG r2, 0x00000078;
|
||
|
CHECKREG r3, 0x00000001;
|
||
|
CHECKREG r4, 0x00005678;
|
||
|
CHECKREG r5, 0x00006789;
|
||
|
CHECKREG r6, 0x00000001;
|
||
|
CHECKREG r7, 0x00000078;
|
||
|
|
||
|
imm32 r0, 0x01230002;
|
||
|
imm32 r1, 0x00000000;
|
||
|
imm32 r2, 0x93456789;
|
||
|
imm32 r3, 0xa456789a;
|
||
|
imm32 r4, 0xb56789ab;
|
||
|
imm32 r5, 0x54238900;
|
||
|
imm32 r6, 0xd789abcd;
|
||
|
imm32 r7, 0xe89abcde;
|
||
|
R2 = R0.B (X);
|
||
|
R3 = R1.L (X);
|
||
|
R4 = R2.L (Z);
|
||
|
R5 = R3.B (X);
|
||
|
R6 = R4.B (Z);
|
||
|
R7 = - R5;
|
||
|
R0 = ~ R6;
|
||
|
R1 = R7.L (X);
|
||
|
CHECKREG r0, 0xFFFFFFFD;
|
||
|
CHECKREG r1, 0x00000000;
|
||
|
CHECKREG r2, 0x00000002;
|
||
|
CHECKREG r3, 0x00000000;
|
||
|
CHECKREG r4, 0x00000002;
|
||
|
CHECKREG r5, 0x00000000;
|
||
|
CHECKREG r6, 0x00000002;
|
||
|
CHECKREG r7, 0x00000000;
|
||
|
|
||
|
imm32 r0, 0x51230002;
|
||
|
imm32 r1, 0x12345678;
|
||
|
imm32 r2, 0x00000000;
|
||
|
imm32 r3, 0x3456789a;
|
||
|
imm32 r4, 0x956789ab;
|
||
|
imm32 r5, 0x86789abc;
|
||
|
imm32 r6, 0x00000000;
|
||
|
imm32 r7, 0x789abcde;
|
||
|
R1 = R0.B (X);
|
||
|
R2 = R1.L (X);
|
||
|
R3 = R2.L (Z);
|
||
|
R4 = R3.B (X);
|
||
|
R5 = R4.B (Z);
|
||
|
R6 = - R5;
|
||
|
R0 = ~ R6;
|
||
|
R7 = R7.L (X);
|
||
|
CHECKREG r0, 0x00000001;
|
||
|
CHECKREG r1, 0x00000002;
|
||
|
CHECKREG r2, 0x00000002;
|
||
|
CHECKREG r3, 0x00000002;
|
||
|
CHECKREG r4, 0x00000002;
|
||
|
CHECKREG r5, 0x00000002;
|
||
|
CHECKREG r6, 0xFFFFFFFE;
|
||
|
CHECKREG r7, 0xFFFFBCDE;
|
||
|
|
||
|
|
||
|
pass
|