summaryrefslogtreecommitdiff
path: root/tests/cris/check_xarith.s
blob: 80038b2ab926b08d30df85b62ce9ce262d387155 (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
69
70
71
72

.include "testutils.inc"

	start

	moveq	-1, $r0
	moveq	0, $r1
	addq	1, $r0
	ax
	addq	0, $r1

	move.d	$r0, $r3
	checkr3 0
	move.d	$r1, $r3
	checkr3 1

	move.d  0, $r0
	moveq	-1, $r1
	subq	1, $r0
	ax
	subq	0, $r1

	move.d	$r0, $r3
	checkr3 ffffffff
	move.d	$r1, $r3
	checkr3 fffffffe


	moveq	-1, $r0
	moveq	-1, $r1
	cmpq	-1, $r0
	ax
	cmpq	-1, $r1
	beq	1f
	nop
	fail
1:
	cmpq	0, $r0
	ax
	cmpq	-1, $r1
	bne	1f
	nop
	fail
1:

	;; test for broken X sequence, run it several times.
	moveq	8, $r0
1:
	moveq	0, $r3
	move.d	$r0, $r1
	andq	1, $r1
	lslq	4, $r1
	moveq	1, $r2
	or.d	$r1, $r2
	ba	2f
	move	$r2, $ccs
2:
	addq	0, $r3
	move.d	$r0, $r4
	move.d	$r1, $r5
	move.d	$r2, $r6
	move.d	$r3, $r7
	lsrq	4, $r1
	move.d	$r1, $r8
	xor	$r1, $r3
	checkr3	0
	subq	1, $r0
	bne	1b
	nop

	pass
	quit