aboutsummaryrefslogtreecommitdiff
path: root/sim/testsuite/bfin/math.s
blob: bd88f70d244316a8d0b61b46c1959c51d957b310 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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