mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-06 12:09:26 +08:00
223 lines
4.1 KiB
ArmAsm
223 lines
4.1 KiB
ArmAsm
|
//Original:/testcases/core/c_logi2op_log_l_shft/c_logi2op_log_l_shft.dsp
|
||
|
// Spec Reference: Logi2op <<=
|
||
|
# mach: bfin
|
||
|
|
||
|
.include "testutils.inc"
|
||
|
start
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
// Logical <<= : negative data
|
||
|
// bit 0-7
|
||
|
imm32 r0, 0x81111111;
|
||
|
imm32 r1, 0x81111111;
|
||
|
imm32 r2, 0x81111111;
|
||
|
imm32 r3, 0x81111111;
|
||
|
imm32 r4, 0x81111111;
|
||
|
imm32 r5, 0x81111111;
|
||
|
imm32 r6, 0x81111111;
|
||
|
imm32 r7, 0x81111111;
|
||
|
R0 <<= 0; /* r0 = 0x81111111 */
|
||
|
R1 <<= 1; /* r1 = 0x40888888 */
|
||
|
R2 <<= 2; /* r2 = 0x20444444 */
|
||
|
R3 <<= 3; /* r3 = 0x10222222 */
|
||
|
R4 <<= 4; /* r4 = 0x08111111 */
|
||
|
R5 <<= 5; /* r5 = 0x04088888 */
|
||
|
R6 <<= 6; /* r6 = 0x02044444 */
|
||
|
R7 <<= 7; /* r7 = 0x01022222 */
|
||
|
CHECKREG r0, 0x81111111;
|
||
|
CHECKREG r1, 0x02222222;
|
||
|
CHECKREG r2, 0x04444444;
|
||
|
CHECKREG r3, 0x08888888;
|
||
|
CHECKREG r4, 0x11111110;
|
||
|
CHECKREG r5, 0x22222220;
|
||
|
CHECKREG r6, 0x44444440;
|
||
|
CHECKREG r7, 0x88888880;
|
||
|
|
||
|
// bit 8-15
|
||
|
imm32 r0, 0x82222222;
|
||
|
imm32 r1, 0x82222222;
|
||
|
imm32 r2, 0x82222222;
|
||
|
imm32 r3, 0x82222222;
|
||
|
imm32 r4, 0x82222222;
|
||
|
imm32 r5, 0x82222222;
|
||
|
imm32 r6, 0x82222222;
|
||
|
imm32 r7, 0x82222222;
|
||
|
R0 <<= 8;
|
||
|
R1 <<= 9;
|
||
|
R2 <<= 10;
|
||
|
R3 <<= 11;
|
||
|
R4 <<= 12;
|
||
|
R5 <<= 13;
|
||
|
R6 <<= 14;
|
||
|
R7 <<= 15;
|
||
|
CHECKREG r0, 0x22222200;
|
||
|
CHECKREG r1, 0x44444400;
|
||
|
CHECKREG r2, 0x88888800;
|
||
|
CHECKREG r3, 0x11111000;
|
||
|
CHECKREG r4, 0x22222000;
|
||
|
CHECKREG r5, 0x44444000;
|
||
|
CHECKREG r6, 0x88888000;
|
||
|
CHECKREG r7, 0x11110000;
|
||
|
|
||
|
// bit 16-23
|
||
|
imm32 r0, 0x83333333;
|
||
|
imm32 r1, 0x83333333;
|
||
|
imm32 r2, 0x83333333;
|
||
|
imm32 r3, 0x83333333;
|
||
|
imm32 r4, 0x83333333;
|
||
|
imm32 r5, 0x83333333;
|
||
|
imm32 r6, 0x83333333;
|
||
|
imm32 r7, 0x83333333;
|
||
|
R0 <<= 16;
|
||
|
R1 <<= 17;
|
||
|
R2 <<= 18;
|
||
|
R3 <<= 19;
|
||
|
R4 <<= 20;
|
||
|
R5 <<= 21;
|
||
|
R6 <<= 22;
|
||
|
R7 <<= 23;
|
||
|
CHECKREG r0, 0x33330000;
|
||
|
CHECKREG r1, 0x66660000;
|
||
|
CHECKREG r2, 0xCCCC0000;
|
||
|
CHECKREG r3, 0x99980000;
|
||
|
CHECKREG r4, 0x33300000;
|
||
|
CHECKREG r5, 0x66600000;
|
||
|
CHECKREG r6, 0xCCC00000;
|
||
|
CHECKREG r7, 0x99800000;
|
||
|
|
||
|
// bit 24-31
|
||
|
imm32 r0, 0x84444444;
|
||
|
imm32 r1, 0x84444444;
|
||
|
imm32 r2, 0x84444444;
|
||
|
imm32 r3, 0x84444444;
|
||
|
imm32 r4, 0x84444444;
|
||
|
imm32 r5, 0x84444444;
|
||
|
imm32 r6, 0x84444444;
|
||
|
imm32 r7, 0x84444444;
|
||
|
R0 <<= 24;
|
||
|
R1 <<= 25;
|
||
|
R2 <<= 26;
|
||
|
R3 <<= 27;
|
||
|
R4 <<= 28;
|
||
|
R5 <<= 29;
|
||
|
R6 <<= 30;
|
||
|
R7 <<= 31;
|
||
|
CHECKREG r0, 0x44000000;
|
||
|
CHECKREG r1, 0x88000000;
|
||
|
CHECKREG r2, 0x10000000;
|
||
|
CHECKREG r3, 0x20000000;
|
||
|
CHECKREG r4, 0x40000000;
|
||
|
CHECKREG r5, 0x80000000;
|
||
|
CHECKREG r6, 0x00000000;
|
||
|
CHECKREG r7, 0x00000000;
|
||
|
|
||
|
// Arithmetic <<= : positive data
|
||
|
// bit 0-7
|
||
|
imm32 r0, 0x41111111;
|
||
|
imm32 r1, 0x41111111;
|
||
|
imm32 r2, 0x41111111;
|
||
|
imm32 r3, 0x41111111;
|
||
|
imm32 r4, 0x41111111;
|
||
|
imm32 r5, 0x41111111;
|
||
|
imm32 r6, 0x41111111;
|
||
|
imm32 r7, 0x41111111;
|
||
|
R0 <<= 0;
|
||
|
R1 <<= 1;
|
||
|
R2 <<= 2;
|
||
|
R3 <<= 3;
|
||
|
R4 <<= 4;
|
||
|
R5 <<= 5;
|
||
|
R6 <<= 6;
|
||
|
R7 <<= 7;
|
||
|
CHECKREG r0, 0x41111111;
|
||
|
CHECKREG r1, 0x82222222;
|
||
|
CHECKREG r2, 0x04444444;
|
||
|
CHECKREG r3, 0x08888888;
|
||
|
CHECKREG r4, 0x11111110;
|
||
|
CHECKREG r5, 0x22222220;
|
||
|
CHECKREG r6, 0x44444440;
|
||
|
CHECKREG r7, 0x88888880;
|
||
|
|
||
|
// bit 8-15
|
||
|
imm32 r0, 0x42222222;
|
||
|
imm32 r1, 0x42222222;
|
||
|
imm32 r2, 0x42222222;
|
||
|
imm32 r3, 0x42222222;
|
||
|
imm32 r4, 0x42222222;
|
||
|
imm32 r5, 0x42222222;
|
||
|
imm32 r6, 0x42222222;
|
||
|
imm32 r7, 0x42222222;
|
||
|
R0 <<= 8;
|
||
|
R1 <<= 9;
|
||
|
R2 <<= 10;
|
||
|
R3 <<= 11;
|
||
|
R4 <<= 12;
|
||
|
R5 <<= 13;
|
||
|
R6 <<= 14;
|
||
|
R7 <<= 15;
|
||
|
CHECKREG r0, 0x22222200;
|
||
|
CHECKREG r1, 0x44444400;
|
||
|
CHECKREG r2, 0x88888800;
|
||
|
CHECKREG r3, 0x11111000;
|
||
|
CHECKREG r4, 0x22222000;
|
||
|
CHECKREG r5, 0x44444000;
|
||
|
CHECKREG r6, 0x88888000;
|
||
|
CHECKREG r7, 0x11110000;
|
||
|
|
||
|
// bit 16-23
|
||
|
imm32 r0, 0x43333333;
|
||
|
imm32 r1, 0x43333333;
|
||
|
imm32 r2, 0x43333333;
|
||
|
imm32 r3, 0x43333333;
|
||
|
imm32 r4, 0x43333333;
|
||
|
imm32 r5, 0x43333333;
|
||
|
imm32 r6, 0x43333333;
|
||
|
imm32 r7, 0x43333333;
|
||
|
R0 <<= 16;
|
||
|
R1 <<= 17;
|
||
|
R2 <<= 18;
|
||
|
R3 <<= 19;
|
||
|
R4 <<= 20;
|
||
|
R5 <<= 21;
|
||
|
R6 <<= 22;
|
||
|
R7 <<= 23;
|
||
|
CHECKREG r0, 0x33330000;
|
||
|
CHECKREG r1, 0x66660000;
|
||
|
CHECKREG r2, 0xCCCC0000;
|
||
|
CHECKREG r3, 0x99980000;
|
||
|
CHECKREG r4, 0x33300000;
|
||
|
CHECKREG r5, 0x66600000;
|
||
|
CHECKREG r6, 0xCCC00000;
|
||
|
CHECKREG r7, 0x99800000;
|
||
|
|
||
|
// bit 24-31
|
||
|
imm32 r0, 0x44444444;
|
||
|
imm32 r1, 0x44444444;
|
||
|
imm32 r2, 0x44444444;
|
||
|
imm32 r3, 0x44444444;
|
||
|
imm32 r4, 0x44444444;
|
||
|
imm32 r5, 0x44444444;
|
||
|
imm32 r6, 0x44444444;
|
||
|
imm32 r7, 0x44444444;
|
||
|
R0 <<= 24;
|
||
|
R1 <<= 25;
|
||
|
R2 <<= 26;
|
||
|
R3 <<= 27;
|
||
|
R4 <<= 28;
|
||
|
R5 <<= 29;
|
||
|
R6 <<= 30;
|
||
|
R7 <<= 31;
|
||
|
CHECKREG r0, 0x44000000;
|
||
|
CHECKREG r1, 0x88000000;
|
||
|
CHECKREG r2, 0x10000000;
|
||
|
CHECKREG r3, 0x20000000;
|
||
|
CHECKREG r4, 0x40000000;
|
||
|
CHECKREG r5, 0x80000000;
|
||
|
CHECKREG r6, 0x00000000;
|
||
|
CHECKREG r7, 0x00000000;
|
||
|
|
||
|
|
||
|
pass
|