| # Test macro |
| |
| .macro assert reg,value |
| cmpeq f0,\reg,\value |
| bra/fx fail |
| .endm |
| |
| |
| # PR 14580 - a.s |
| |
| add r8,r0,0x11112222 |
| add r9,r0,-32 |
| sra r1,r8,r9 ||nop |
| sra r2,r8,-32 ||nop |
| srl r3,r8,r9 ||nop |
| srl r4,r8,-32 ||nop |
| |
| assert r1, 0 |
| assert r2, 0 |
| assert r3, 0 |
| assert r4, 0 |
| |
| |
| # PR 17266 - a.s |
| |
| add r20, r0, 0xffffffff |
| add r21, r0, 0xffffffff |
| add r22, r0, 0xffffffff |
| add r23, r0, 0xffffffff |
| add r1, r0, 0x12345678 |
| add r2, r0, -33 |
| srahh r20, r1, r2 |
| srahl r21, r1, r2 |
| srlhh r22, r1, r2 |
| srlhl r23, r1, r2 |
| sra r24, r1, r2 |
| srl r25, r1, r2 |
| rot r26, r1, r2 |
| |
| assert r20, 0xacf0ffff |
| assert r21, 0xffffacf0 |
| assert r22, 0xacf0ffff |
| assert r23, 0xffffacf0 |
| assert r24, 0x2468acf0 |
| assert r25, 0x2468acf0 |
| assert r26, 0x2468acf0 |
| |
| |
| # PR 17266 - a2.s |
| |
| add r20, r0, 0xffffffff |
| add r21, r0, 0xffffffff |
| add r22, r0, 0xffffffff |
| add r23, r0, 0xffffffff |
| add r1, r0, 0x12345678 |
| add r2, r0, -17 |
| sra2h r20, r1, r2 |
| srl2h r21, r1, r2 |
| rot2h r22, r1, r2 |
| |
| assert r20, 0x2468acf0 |
| assert r21, 0x2468acf0 |
| assert r22, 0x2468acf0 |
| |
| |
| # PR 17685 - a.s |
| |
| add r20,r0,r0 |
| add r21,r0,r0 |
| add r22,r0,r0 |
| add r23,r0,r0 |
| add r24,r0,r0 |
| add r25,r0,r0 |
| add r30,r0,r0 |
| add r31,r0,r0 |
| |
| add r8,r0,0x55555555 |
| add r9,r0,0x1f |
| sra r20,r8,r9 ||nop |
| srl r21,r8,r9 ||nop |
| srahh r22,r8,r9 ||nop |
| srahl r23,r8,r9 ||nop |
| srlhh r24,r8,r9 ||nop |
| srlhl r25,r8,r9 ||nop |
| |
| add r8,r0,0x5555aaaa |
| add r9,r0,0x000ffff1 |
| sra2h r30,r8,r9 ||nop |
| srl2h r31,r8,r9 ||nop |
| |
| assert r20, 0 |
| assert r21, 0 |
| assert r22, 0 |
| assert r23, 0 |
| assert r24, 0 |
| assert r25, 0 |
| assert r30, 0 |
| assert r31, 0 |
| |
| |
| # PR 18196 - a.s |
| |
| add r1,r0,0xfedcba98 |
| add r2,r0,0x76543210 |
| add r3,r0,0x41 |
| add r4,r0,1 |
| nop || mvtacc a0 r1,r2 |
| nop || mvfacc r10,a0 r3 |
| nop || mvfacc r11,a0 r4 |
| |
| assert r10, 0x3b2a1908 |
| assert r11, 0x3b2a1908 |
| |
| |
| # PR 18329 - a.s |
| |
| add r10,r0,0 || add r2,r0,-1 |
| add r11,r0,0 || add r12,r0,0 |
| add r13,r0,0 || add r14,r0,0 |
| add r15,r0,0 || add r16,r0,0 |
| add r17,r0,0 || add r18,r0,0 |
| |
| add r3,r0,0x00000020 ; 32 |
| src r10,r2,r3 |
| add r3,r0,0x00000021 ; 33 |
| src r11,r2,r3 |
| add r3,r0,0x0000003f ; 63 |
| src r12,r2,r3 |
| add r3,r0,0x00000040 ;64 |
| src r13,r2,r3 |
| add r3,r0,0x00000041 ;65 |
| src r14,r2,r3 |
| |
| add r3,r0,0xffffffdf ;-33 |
| src r15,r2,r3 |
| add r3,r0,0xffffffc1 ;-63 |
| src r16,r2,r3 |
| add r3,r0,0xffffffc0 ;-64 |
| src r17,r2,r3 |
| add r3,r0,0xffffffbf ;-65 |
| src r18,r2,r3 |
| |
| assert r10, 0x00000000 |
| assert r11, 0x80000000 |
| assert r12, 0xfffffffe |
| assert r13, 0x00000000 |
| assert r14, 0x80000000 |
| assert r15, 0x00000001 |
| assert r16, 0x7fffffff |
| assert r17, 0xffffffff |
| assert r18, 0x00000001 |
| |
| |
| # PR 18364 - b.s |
| |
| add r1,r0,0x12345678 |
| add r2,r0,0x9abcdef0 |
| add r3,r0,0xffffffe0 ; -32 |
| add r4,r0,0xffffffc0 ; -64 |
| src r1,r2,r3 ||nop |
| add r10,r1,r0 ||nop |
| add r1,r0,0x12345678 |
| src r1,r2,r4 ||nop |
| add r11,r1,r0 ||nop |
| |
| assert r10, 0x9abcdef0 |
| assert r11, 0x9abcdef0 |
| |
| |
| # all okay |
| |
| bra ok |
| |
| ok: |
| add r2, r0, 0 |
| .long 0x0e000004 |
| nop |
| |
| fail: |
| add r2, r0, 47 |
| .long 0x0e000004 |
| nop |