| # mach: bfin |
| |
| .include "testutils.inc" |
| start |
| |
| // load r1=0x7fffffff |
| // load r2=0x80000000 |
| // load r3=0x000000ff |
| // load r4=0x00000000 |
| loadsym p0, data0; |
| R0 = [ P0 ++ ]; |
| R1 = [ P0 ++ ]; |
| R2 = [ P0 ++ ]; |
| R3 = [ P0 ++ ]; |
| R4 = [ P0 ++ ]; |
| |
| _dbg r0; |
| _dbg r1; |
| _dbg r2; |
| _dbg r3; |
| _dbg r4; |
| |
| R7 = 0; |
| ASTAT = R7; |
| r5 = r1 << 0x4 (s); |
| _DBG ASTAT; |
| r7=astat; |
| dbga (r5.h, 0x7fff); |
| dbga (r5.l, 0xffff); |
| dbga (r7.h, 0x0300); // V=1, VS=1 |
| dbga (r7.l, 0x8); |
| |
| R7 = 0; |
| ASTAT = R7; |
| r5.h = r1.h << 0x4 (s); |
| _DBG ASTAT; |
| r7=astat; |
| dbga (r5.h, 0x7fff); |
| dbga (r7.h, 0x0300); // V=1, VS=1 |
| dbga (r7.l, 0x8); |
| |
| A0 = 0; |
| A0.w = r1; |
| A0.x = r0.l; |
| r6 = 0x3; |
| _dbg r6; |
| _dbg A0; |
| R7 = 0; |
| ASTAT = R7; |
| A0 = ASHIFT A0 BY R6.L; |
| _DBG ASTAT; |
| _DBG A0; |
| r7 = astat; |
| dbga (r7.h, 0x0); // AV0=0, AV0S=0 |
| dbga (r7.l, 0x2); // AN = 1 |
| |
| A1 = 0; |
| A1 = r1; |
| A1.x = r0.l; |
| r6 = 0x3; |
| _dbg A1; |
| R7 = 0; |
| ASTAT = R7; |
| A1 = ASHIFT A1 BY R6.L; |
| _DBG ASTAT; |
| _DBG A1; |
| r7 = astat; |
| dbga (r7.h, 0x0); // AV1=0, AV1S=0 |
| dbga (r7.l, 0x2); // AN = 1 |
| |
| pass |
| |
| .data 0x1000; |
| data0: |
| .dw 0x1111 |
| .dw 0x1111 |
| .dw 0xffff |
| .dw 0x7fff |
| .dw 0x0000 |
| .dw 0x8000 |
| .dw 0x00ff |
| .dw 0x0000 |
| .dw 0x0000 |
| .dw 0x0000 |