aboutsummaryrefslogtreecommitdiff
path: root/sim/testsuite/bfin/math.s
diff options
context:
space:
mode:
Diffstat (limited to 'sim/testsuite/bfin/math.s')
-rw-r--r--sim/testsuite/bfin/math.s66
1 files changed, 66 insertions, 0 deletions
diff --git a/sim/testsuite/bfin/math.s b/sim/testsuite/bfin/math.s
new file mode 100644
index 0000000..bd88f70
--- /dev/null
+++ b/sim/testsuite/bfin/math.s
@@ -0,0 +1,66 @@
+# Blackfin testcase for ashift
+# mach: bfin
+
+ .include "testutils.inc"
+
+ start
+
+ R0 = 5;
+ R0 += -1;
+ R1 = 4;
+ CC = R0 == R1;
+ if CC jump 1f;
+ fail
+1:
+
+ imm32 r2, 0xff901234
+ r4=8;
+ i2=r2;
+ m2 = 4;
+ a0 = 0;
+ r1.l = (a0 += r4.l *r4.l) (IS) || I2 += m2 || nop;
+ r0 = i2;
+ imm32 r1, 0xff901238;
+ CC = r1 == r0;
+ if CC jump 2f;
+ fail
+2:
+
+ A0 = 0;
+ A1 = 0;
+ R0 = 0;
+ R1 = 0;
+ R2 = 0;
+ R3 = 0;
+ R4 = 0;
+ R5 = 0;
+ R2.H = 0xf12e;
+ R2.L = 0xbeaa;
+ R3.L = 0x00ff;
+ A1.w = R2;
+ A1.x = R3;
+ R0.H = 0xd136;
+ R0.L = 0x459d;
+ R1.H = 0xabd6;
+ R1.L = 0x9ec7;
+
+ R5 = A1 , A0 = R1.L * R0.L (FU);
+
+ R0 = -1 (X);
+ CC = r5 == r0;
+ if CC jump 3f;
+ fail
+3:
+
+ R0.L = 0x7bb8;
+ R0.H = 0x8d5e;
+ R4.L = 0x7e1c;
+ R4.H = 0x9e22;
+ R6.H = R4.H * R0.L (M), R6.L = R4.L * R0.H (ISS2);
+
+ imm32 r0, 0x80008000
+ CC = r6 == r0;
+ if CC jump 4f;
+ fail
+4:
+ pass