summaryrefslogtreecommitdiff
path: root/sim/testsuite/sim/bfin/a20.S
blob: 624599426cc96f5052bf0c8535873608b614f771 (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
67
68
# mach: bfin

#include "test.h"
.include "testutils.inc"
	start

	R1 = 0;
	ASTAT = R1;

	R1.H = -32768;
	R2 = 0;
	R2.H = -32768;
	R3 = R1 +|+ R2;
	_DBG ASTAT;
	R7 = ASTAT;
	CHECKREG R7, (_VS|_V|_V_COPY|_AC1|_AZ);

	R0.L = 32767;
	R0.H = 32767;
	R0 = R0 +|- R0;
	_DBG ASTAT;
	R7 = ASTAT;
	CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AN|_AZ)

	R0 = 0;
	ASTAT = R0;
	_DBG ASTAT;
	R7 = ASTAT;
	CHECKREG R7, (_UNSET)

	R1.L = -1;
	R1.H = 0x7fff;
	R0 = ABS R1;
	_DBG R0;
	_DBG ASTAT;
	R7 = ASTAT;
	CHECKREG R7, (_UNSET)

	R1=0;
	R1.H = 0x8000;
	_DBG R1;
	R0 = ABS R1;
	_DBG R0;
	_DBG ASTAT;
	R7 = ASTAT;
	CHECKREG R7, (_VS|_V|_V_COPY)

	R0 = 0;
	ASTAT = R0;

	R1.L = 32767;
	R1.H = 32767;
	R0 = R1 +|+ R1 (CO);
	_DBG R0;
	_DBG ASTAT;
	R7 = ASTAT;
	CHECKREG R7, (_VS|_V|_V_COPY|_AN)

	R0.L = -1;
	R0.H = 32766;
	R1.L = -1;
	R1.H = -32768;
	R0 = PACK( R0.H , R1.L );
	_DBG R0;
	R7 = ASTAT;
	CHECKREG R7, (_VS|_V|_V_COPY|_AN)

	pass