1
- var lo : u32 , hi : u32 ;
1
+ import {
2
+ clz as builtin_clz ,
3
+ ctz as builtin_ctz ,
4
+ popcnt as builtin_popcnt ,
5
+ rotl as builtin_rotl ,
6
+ rotr as builtin_rotr ,
7
+ } from "builtins" ;
8
+
9
+ let
10
+ lo: u32 ,
11
+ hi : u32 ;
2
12
3
13
export function getLo ( ) : u32 {
4
14
return lo ;
@@ -8,186 +18,176 @@ export function getHi(): u32 {
8
18
return hi ;
9
19
}
10
20
11
- import { clz as builtin_clz } from "builtins" ;
12
-
13
21
export function clz ( loLeft : u32 , hiLeft : u32 ) : void {
14
22
var ret = builtin_clz < u64 > ( < u64 > loLeft | < u64 > hiLeft << 32 ) ;
15
23
lo = < u32 > ret ;
16
24
hi = 0 ;
17
25
}
18
26
19
- import { ctz as builtin_ctz } from "builtins" ;
20
-
21
27
export function ctz ( loLeft : u32 , hiLeft : u32 ) : void {
22
28
var ret = builtin_ctz < u64 > ( < u64 > loLeft | < u64 > hiLeft << 32 ) ;
23
29
lo = < u32 > ret ;
24
30
hi = 0 ;
25
31
}
26
32
27
- import { popcnt as builtin_popcnt } from "builtins" ;
28
-
29
33
export function popcnt ( loLeft : u32 , hiLeft : u32 ) : void {
30
34
var ret = builtin_popcnt < u64 > ( < u64 > loLeft | < u64 > hiLeft << 32 ) ;
31
35
lo = < u32 > ret ;
32
36
hi = 0 ;
33
37
}
34
38
35
39
export function eqz ( loLeft : u32 , hiLeft : u32 ) : void {
36
- var ret : bool = ! ( < u64 > loLeft | < u64 > hiLeft << 32 ) ;
40
+ var ret = ! ( < u64 > loLeft | < u64 > hiLeft << 32 ) ;
37
41
lo = u32 ( ret ) ;
38
42
hi = 0 ;
39
43
}
40
44
41
45
export function add ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
42
46
var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) + ( < u64 > loRight | < u64 > hiRight << 32 ) ;
43
47
lo = < u32 > ret ;
44
- hi = < u32 > ( ret >> 32 ) ;
48
+ hi = u32 ( ret >> 32 ) ;
45
49
}
46
50
47
51
export function sub ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
48
52
var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) - ( < u64 > loRight | < u64 > hiRight << 32 ) ;
49
53
lo = < u32 > ret ;
50
- hi = < u32 > ( ret >> 32 ) ;
54
+ hi = u32 ( ret >> 32 ) ;
51
55
}
52
56
53
57
export function mul ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
54
58
var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) * ( < u64 > loRight | < u64 > hiRight << 32 ) ;
55
59
lo = < u32 > ret ;
56
- hi = < u32 > ( ret >> 32 ) ;
60
+ hi = u32 ( ret >> 32 ) ;
57
61
}
58
62
59
63
export function div_s ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
60
- var ret = < u64 > ( < i64 > ( < u64 > loLeft | < u64 > hiLeft << 32 ) / < i64 > ( < u64 > loRight | < u64 > hiRight << 32 ) ) ;
64
+ var ret = u64 ( i64 ( < u64 > loLeft | < u64 > hiLeft << 32 ) / i64 ( < u64 > loRight | < u64 > hiRight << 32 ) ) ;
61
65
lo = < u32 > ret ;
62
- hi = < u32 > ( ret >> 32 ) ;
66
+ hi = u32 ( ret >> 32 ) ;
63
67
}
64
68
65
69
export function div_u ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
66
70
var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) / ( < u64 > loRight | < u64 > hiRight << 32 ) ;
67
71
lo = < u32 > ret ;
68
- hi = < u32 > ( ret >> 32 ) ;
72
+ hi = u32 ( ret >> 32 ) ;
69
73
}
70
74
71
75
export function rem_s ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
72
- var ret = < u64 > ( < i64 > ( < u64 > loLeft | < u64 > hiLeft << 32 ) % < i64 > ( < u64 > loRight | < u64 > hiRight << 32 ) ) ;
76
+ var ret = u64 ( i64 ( < u64 > loLeft | < u64 > hiLeft << 32 ) % i64 ( < u64 > loRight | < u64 > hiRight << 32 ) ) ;
73
77
lo = < u32 > ret ;
74
- hi = < u32 > ( ret >> 32 ) ;
78
+ hi = u32 ( ret >> 32 ) ;
75
79
}
76
80
77
81
export function rem_u ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
78
82
var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) % ( < u64 > loRight | < u64 > hiRight << 32 ) ;
79
83
lo = < u32 > ret ;
80
- hi = < u32 > ( ret >>> 32 ) ;
84
+ hi = u32 ( ret >>> 32 ) ;
81
85
}
82
86
83
87
export function and ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
84
88
var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) & ( < u64 > loRight | < u64 > hiRight << 32 ) ;
85
89
lo = < u32 > ret ;
86
- hi = < u32 > ( ret >>> 32 ) ;
90
+ hi = u32 ( ret >>> 32 ) ;
87
91
}
88
92
89
93
export function or ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
90
94
var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) | ( < u64 > loRight | < u64 > hiRight << 32 ) ;
91
95
lo = < u32 > ret ;
92
- hi = < u32 > ( ret >>> 32 ) ;
96
+ hi = u32 ( ret >>> 32 ) ;
93
97
}
94
98
95
99
export function xor ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
96
100
var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) ^ ( < u64 > loRight | < u64 > hiRight << 32 ) ;
97
101
lo = < u32 > ret ;
98
- hi = < u32 > ( ret >>> 32 ) ;
102
+ hi = u32 ( ret >>> 32 ) ;
99
103
}
100
104
101
105
export function shl ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
102
106
var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) << ( < u64 > loRight | < u64 > hiRight << 32 ) ;
103
107
lo = < u32 > ret ;
104
- hi = < u32 > ( ret >>> 32 ) ;
108
+ hi = u32 ( ret >>> 32 ) ;
105
109
}
106
110
107
111
export function shr_s ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
108
- var ret = < u64 > ( < i64 > ( < u64 > loLeft | < u64 > hiLeft << 32 ) >> < i64 > ( < u64 > loRight | < u64 > hiRight << 32 ) ) ;
112
+ var ret = u64 ( i64 ( < u64 > loLeft | < u64 > hiLeft << 32 ) >> i64 ( < u64 > loRight | < u64 > hiRight << 32 ) ) ;
109
113
lo = < u32 > ret ;
110
- hi = < u32 > ( ret >>> 32 ) ;
114
+ hi = u32 ( ret >>> 32 ) ;
111
115
}
112
116
113
117
export function shr_u ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
114
118
var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) >> ( < u64 > loRight | < u64 > hiRight << 32 ) ;
115
119
lo = < u32 > ret ;
116
- hi = < u32 > ( ret >>> 32 ) ;
120
+ hi = u32 ( ret >>> 32 ) ;
117
121
}
118
122
119
- import { rotl as builtin_rotl } from "builtins" ;
120
-
121
123
export function rotl ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
122
124
var ret = builtin_rotl < u64 > ( < u64 > loLeft | < u64 > hiLeft << 32 , < u64 > loRight | < u64 > hiRight << 32 ) ;
123
125
lo = < u32 > ret ;
124
- hi = < u32 > ( ret >>> 32 ) ;
126
+ hi = u32 ( ret >>> 32 ) ;
125
127
}
126
128
127
- import { rotr as builtin_rotr } from "builtins" ;
128
-
129
129
export function rotr ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
130
130
var ret = builtin_rotr < u64 > ( < u64 > loLeft | < u64 > hiLeft << 32 , < u64 > loRight | < u64 > hiRight << 32 ) ;
131
131
lo = < u32 > ret ;
132
- hi = < u32 > ( ret >>> 32 ) ;
132
+ hi = u32 ( ret >>> 32 ) ;
133
133
}
134
134
135
135
export function eq ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
136
- var ret : bool = ( < u64 > loLeft | < u64 > hiLeft << 32 ) == ( < u64 > loRight | < u64 > hiRight << 32 ) ;
136
+ var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) == ( < u64 > loRight | < u64 > hiRight << 32 ) ;
137
137
lo = u32 ( ret ) ;
138
138
hi = 0 ;
139
139
}
140
140
141
141
export function ne ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
142
- var ret : bool = ( < u64 > loLeft | < u64 > hiLeft << 32 ) != ( < u64 > loRight | < u64 > hiRight << 32 ) ;
142
+ var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) != ( < u64 > loRight | < u64 > hiRight << 32 ) ;
143
143
lo = u32 ( ret ) ;
144
144
hi = 0 ;
145
145
}
146
146
147
147
export function lt_s ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
148
- var ret : bool = < i64 > ( < u64 > loLeft | < u64 > hiLeft << 32 ) < < i64 > ( < u64 > loRight | < u64 > hiRight << 32 ) ;
148
+ var ret = i64 ( < u64 > loLeft | < u64 > hiLeft << 32 ) < i64 ( < u64 > loRight | < u64 > hiRight << 32 ) ;
149
149
lo = u32 ( ret ) ;
150
150
hi = 0 ;
151
151
}
152
152
153
153
export function lt_u ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
154
- var ret : bool = ( < u64 > loLeft | < u64 > hiLeft << 32 ) < ( < u64 > loRight | < u64 > hiRight << 32 ) ;
154
+ var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) < ( < u64 > loRight | < u64 > hiRight << 32 ) ;
155
155
lo = u32 ( ret ) ;
156
156
hi = 0 ;
157
157
}
158
158
159
159
export function le_s ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
160
- var ret : bool = < i64 > ( < u64 > loLeft | < u64 > hiLeft << 32 ) <= < i64 > ( < u64 > loRight | < u64 > hiRight << 32 ) ;
160
+ var ret = i64 ( < u64 > loLeft | < u64 > hiLeft << 32 ) <= i64 ( < u64 > loRight | < u64 > hiRight << 32 ) ;
161
161
lo = u32 ( ret ) ;
162
162
hi = 0 ;
163
163
}
164
164
165
165
export function le_u ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
166
- var ret : bool = ( < u64 > loLeft | < u64 > hiLeft << 32 ) <= ( < u64 > loRight | < u64 > hiRight << 32 ) ;
166
+ var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) <= ( < u64 > loRight | < u64 > hiRight << 32 ) ;
167
167
lo = u32 ( ret ) ;
168
168
hi = 0 ;
169
169
}
170
170
171
171
export function gt_s ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
172
- var ret : bool = < i64 > ( < u64 > loLeft | < u64 > hiLeft << 32 ) > < i64 > ( < u64 > loRight | < u64 > hiRight << 32 ) ;
172
+ var ret = < i64 > ( < u64 > loLeft | < u64 > hiLeft << 32 ) > < i64 > ( < u64 > loRight | < u64 > hiRight << 32 ) ;
173
173
lo = u32 ( ret ) ;
174
174
hi = 0 ;
175
175
}
176
176
177
177
export function gt_u ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
178
- var ret : bool = ( < u64 > loLeft | < u64 > hiLeft << 32 ) > ( < u64 > loRight | < u64 > hiRight << 32 ) ;
178
+ var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) > ( < u64 > loRight | < u64 > hiRight << 32 ) ;
179
179
lo = u32 ( ret ) ;
180
180
hi = 0 ;
181
181
}
182
182
183
183
export function ge_s ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
184
- var ret : bool = < i64 > ( < u64 > loLeft | < u64 > hiLeft << 32 ) >= < i64 > ( < u64 > loRight | < u64 > hiRight << 32 ) ;
184
+ var ret = i64 ( < u64 > loLeft | < u64 > hiLeft << 32 ) >= i64 ( < u64 > loRight | < u64 > hiRight << 32 ) ;
185
185
lo = u32 ( ret ) ;
186
186
hi = 0 ;
187
187
}
188
188
189
189
export function ge_u ( loLeft : u32 , hiLeft : u32 , loRight : u32 , hiRight : u32 ) : void {
190
- var ret : bool = ( < u64 > loLeft | < u64 > hiLeft << 32 ) >= ( < u64 > loRight | < u64 > hiRight << 32 ) ;
190
+ var ret = ( < u64 > loLeft | < u64 > hiLeft << 32 ) >= ( < u64 > loRight | < u64 > hiRight << 32 ) ;
191
191
lo = u32 ( ret ) ;
192
192
hi = 0 ;
193
193
}
0 commit comments