85 lines
1.2 KiB
ArmAsm
85 lines
1.2 KiB
ArmAsm
|
# 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
|