Statistics
| Branch: | Revision:

root / tests / tcg / xtensa / test_quo.S @ c09015dd

History | View | Annotate | Download (2.8 kB)

1
.include "macros.inc"
2

    
3
test_suite quo
4

    
5
test quou_pp
6
    movi    a2, 0x5a5a137f
7
    mov     a3, a2
8
    movi    a4, 0x137f5a5a
9
    movi    a6, 0x4
10
    quou    a5, a2, a4
11
    assert  eq, a5, a6
12
    quou    a2, a2, a4
13
    assert  eq, a2, a6
14
    quou    a4, a3, a4
15
    assert  eq, a4, a6
16
test_end
17

    
18
test quou_np
19
    movi    a2, 0xa5a5137f
20
    mov     a3, a2
21
    movi    a4, 0x137f5a5a
22
    movi    a6, 0x8
23
    quou    a5, a2, a4
24
    assert  eq, a5, a6
25
    quou    a2, a2, a4
26
    assert  eq, a2, a6
27
    quou    a4, a3, a4
28
    assert  eq, a4, a6
29
test_end
30

    
31
test quou_pn
32
    movi    a2, 0x5a5a137f
33
    mov     a3, a2
34
    movi    a4, 0xf7315a5a
35
    movi    a6, 0
36
    quou    a5, a2, a4
37
    assert  eq, a5, a6
38
    quou    a2, a2, a4
39
    assert  eq, a2, a6
40
    quou    a4, a3, a4
41
    assert  eq, a4, a6
42
test_end
43

    
44
test quou_nn
45
    movi    a2, 0xf7315a5a
46
    mov     a3, a2
47
    movi    a4, 0xa5a5137f
48
    movi    a6, 0x1
49
    quou    a5, a2, a4
50
    assert  eq, a5, a6
51
    quou    a2, a2, a4
52
    assert  eq, a2, a6
53
    quou    a4, a3, a4
54
    assert  eq, a4, a6
55
test_end
56

    
57
test quou_exc
58
    set_vector kernel, 2f
59
    movi    a2, 0xf7315a5a
60
    movi    a4, 0x00000000
61
1:
62
    quou    a5, a2, a4
63
    test_fail
64
2:
65
    rsr     a2, exccause
66
    assert  eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */
67
    rsr     a2, epc1
68
    movi    a3, 1b
69
    assert  eq, a2, a3
70
test_end
71

    
72
test quos_pp
73
    movi    a2, 0x5a5a137f
74
    mov     a3, a2
75
    movi    a4, 0x137f5a5a
76
    movi    a6, 0x4
77
    quos    a5, a2, a4
78
    assert  eq, a5, a6
79
    quos    a2, a2, a4
80
    assert  eq, a2, a6
81
    quos    a4, a3, a4
82
    assert  eq, a4, a6
83
test_end
84

    
85
test quos_np
86
    movi    a2, 0xa5a5137f
87
    mov     a3, a2
88
    movi    a4, 0x137f5a5a
89
    movi    a6, 0xfffffffc
90
    quos    a5, a2, a4
91
    assert  eq, a5, a6
92
    quos    a2, a2, a4
93
    assert  eq, a2, a6
94
    quos    a4, a3, a4
95
    assert  eq, a4, a6
96
test_end
97

    
98
test quos_pn
99
    movi    a2, 0x5a5a137f
100
    mov     a3, a2
101
    movi    a4, 0xf7315a5a
102
    movi    a6, 0xfffffff6
103
    quos    a5, a2, a4
104
    assert  eq, a5, a6
105
    quos    a2, a2, a4
106
    assert  eq, a2, a6
107
    quos    a4, a3, a4
108
    assert  eq, a4, a6
109
test_end
110

    
111
test quos_nn
112
    movi    a2, 0xf7315a5a
113
    mov     a3, a2
114
    movi    a4, 0xa5a5137f
115
    movi    a6, 0
116
    quos    a5, a2, a4
117
    assert  eq, a5, a6
118
    quos    a2, a2, a4
119
    assert  eq, a2, a6
120
    quos    a4, a3, a4
121
    assert  eq, a4, a6
122
test_end
123

    
124
test quos_over
125
    movi    a2, 0x80000000
126
    movi    a4, 0xffffffff
127
    movi    a6, 0x80000000
128
    quos    a5, a2, a4
129
    assert  eq, a5, a6
130
test_end
131

    
132
test quos_exc
133
    set_vector kernel, 2f
134
    movi    a2, 0xf7315a5a
135
    movi    a4, 0x00000000
136
1:
137
    quos    a5, a2, a4
138
    test_fail
139
2:
140
    rsr     a2, exccause
141
    assert  eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */
142
    rsr     a2, epc1
143
    movi    a3, 1b
144
    assert  eq, a2, a3
145
test_end
146

    
147
test_suite_end