aboutsummaryrefslogtreecommitdiff
path: root/sim/testsuite/bfin/pr.s
diff options
context:
space:
mode:
Diffstat (limited to 'sim/testsuite/bfin/pr.s')
-rw-r--r--sim/testsuite/bfin/pr.s81
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);