81 lines
852 B
ArmAsm
81 lines
852 B
ArmAsm
# mach: bfin
|
|
|
|
.include "testutils.inc"
|
|
start
|
|
|
|
loadsym R3, foo;
|
|
I1 = R3;
|
|
|
|
R4 = 0x10
|
|
R4 = R4 + R3;
|
|
P0 = R4;
|
|
|
|
R4 = 0x14;
|
|
R4 = R4 + R3;
|
|
I0 = R4;
|
|
|
|
r0 = 0x22;
|
|
loadsym P1, bar;
|
|
|
|
[i0] = r0;
|
|
[i1] = r0;
|
|
|
|
doItAgain:
|
|
|
|
p2 = 4;
|
|
r5=0;
|
|
|
|
LSETUP ( lstart , lend) LC0 = P2;
|
|
lstart:
|
|
|
|
MNOP || R2 = [ I0 ++ ] || R1 = [ I1 ++ ];
|
|
CC = R1 == R2;
|
|
IF CC JUMP lend;
|
|
R1 = [ P1 + 0x0 ];
|
|
R1 = R1 + R0;
|
|
[ P1 + 0x0 ] = R1;
|
|
|
|
lend:
|
|
NOP;
|
|
|
|
if !cc jump _halt0;
|
|
cc = r5 == 0;
|
|
if !cc jump _halt0;
|
|
|
|
r4=1;
|
|
r5=r5+r4;
|
|
r1=i0;
|
|
R4 = 0x24;
|
|
R4 = R3 + R4
|
|
CC = R1 == R4
|
|
if !CC JUMP _fail;
|
|
|
|
i2=i0;
|
|
r2=0x1234;
|
|
[i2++]=r2;
|
|
[i2++]=r2;
|
|
[i2++]=r2;
|
|
[i2++]=r2;
|
|
[i2++]=r2;
|
|
[i2++]=r2;
|
|
[i2++]=r2;
|
|
jump doItAgain;
|
|
|
|
_halt0:
|
|
r0=i0;
|
|
R4 = 0x34;
|
|
R4 = R4 + R3;
|
|
CC = R0 == R4;
|
|
IF !CC JUMP _fail;
|
|
|
|
pass;
|
|
|
|
_fail:
|
|
fail;
|
|
|
|
.data
|
|
foo:
|
|
.space (0x100);
|
|
|
|
bar:
|
|
.space (0x1000);
|