diff options
Diffstat (limited to 'sim/testsuite/bfin/pr.s')
-rw-r--r-- | sim/testsuite/bfin/pr.s | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/sim/testsuite/bfin/pr.s b/sim/testsuite/bfin/pr.s new file mode 100644 index 0000000..d290184 --- /dev/null +++ b/sim/testsuite/bfin/pr.s @@ -0,0 +1,81 @@ +# 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); |