]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - sim/testsuite/sim/v850/divh_3.cgs
This commit was manufactured by cvs2svn to create branch
[thirdparty/binutils-gdb.git] / sim / testsuite / sim / v850 / divh_3.cgs
CommitLineData
c5fbc25b
DD
1# v850 divh_3
2# mach: v850e
3# as(v850e): -mv850e
4
5 .include "testutils.inc"
6
7# Regular divhision - check signs
8# The S flag is based on the quotient, not the remainder
9
10 seti 6, r1
11 seti 45, r2
12 divh r1, r2, r3
13
14 flags 0
15 reg r1, 6
16 reg r2, 7
17 reg r3, 3
18
19 seti -6, r1
20 seti 45, r2
21 divh r1, r2, r3
22
23 flags s
24 reg r1, -6
25 reg r2, -7
26 reg r3, 3
27
28 seti 6, r1
29 seti -45, r2
30 divh r1, r2, r3
31
32 flags s
33 reg r1, 6
34 reg r2, -7
35 reg r3, -3
36
37 seti -6, r1
38 seti -45, r2
39 divh r1, r2, r3
40
41 flags 0
42 reg r1, -6
43 reg r2, 7
44 reg r3, -3
45
46# Only the lower half of the dividend is used
47
48 seti 0x0000fffa, r1
49 seti -45, r2
50 divh r1, r2, r3
51
52 flags 0
53 reg r1, 0x0000fffa
54 reg r2, 7
55 reg r3, -3
56
57
58# If the data is divhided by zero, OV=1 and the quotient is undefined.
59# According to NEC, the S and Z flags, and the output registers, are
60# unchanged.
61
62 noflags
63 seti 0, r1
64 seti 45, r2
65 seti 67, r3
66 divh r1, r2, r3
67
68 flags v
69 reg r2, 45
70 reg r3, 67
71
72 allflags
73 seti 0, r1
74 seti 45, r2
75 seti 67, r3
76 divh r1, r2, r3
77
78 flags sat + c + v + s + z
79 reg r2, 45
80 reg r3, 67
81
82# Zero / (N!=0) => normal
83
84 noflags
85 seti 45, r1
86 seti 0, r2
87 seti 67, r3
88 divh r1, r2, r3
89
90 flags z
91 reg r1, 45
92 reg r2, 0
93 reg r3, 0
94
95# Test for regular overflow
96
97 noflags
98 seti -1, r1
99 seti 0x80000000, r2
100 seti 67, r3
101 divh r1, r2, r3
102
103 flags v + s
104 reg r1, -1
105 reg r2, 0x80000000
106 reg r3, 0
107
108# The Z flag is based on the quotient, not the remainder
109
110 noflags
111 seti 45, r1
112 seti 16, r2
113 divh r1, r2, r3
114
115 flags z
116 reg r2, 0
117 reg r3, 16
118
119# If the quot and rem registers are the same, the remainder is stored.
120
121 seti 6, r1
122 seti 45, r2
123 divh r1, r2, r2
124
125 flags 0
126 reg r1, 6
127 reg r2, 3
128
129
130 pass