Statistics
| Branch: | Revision:

root / tests / xtensa / test_rem.S @ 7d890b40

History | View | Annotate | Download (2.8 kB)

1
.include "macros.inc"
2

    
3
test_suite rem
4

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

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

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

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

    
57
test remu_exc
58
    set_vector kernel, 2f
59
    movi    a2, 0xf7315a5a
60
    movi    a4, 0x00000000
61
1:
62
    remu    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 rems_pp
73
    movi    a2, 0x5a5a137f
74
    mov     a3, a2
75
    movi    a4, 0x137f5a5a
76
    movi    a6, 0x0c5caa17
77
    rems    a5, a2, a4
78
    assert  eq, a5, a6
79
    rems    a2, a2, a4
80
    assert  eq, a2, a6
81
    rems    a4, a3, a4
82
    assert  eq, a4, a6
83
test_end
84

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

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

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

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

    
132
test rems_exc
133
    set_vector kernel, 2f
134
    movi    a2, 0xf7315a5a
135
    movi    a4, 0x00000000
136
1:
137
    rems    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