Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1488)

Side by Side Diff: src/harmony-simd.js

Issue 1294513004: [simd.js] Update to spec version 0.8.2. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/contexts.h ('k') | src/heap/heap.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 (function(global, utils) { 5 (function(global, utils) {
6 6
7 "use strict"; 7 "use strict";
8 8
9 %CheckIsBootstrapping(); 9 %CheckIsBootstrapping();
10 10
11 // ------------------------------------------------------------------- 11 // -------------------------------------------------------------------
12 // Imports 12 // Imports
13 13
14 var GlobalSIMD = global.SIMD; 14 var GlobalSIMD = global.SIMD;
15 15
16 macro SIMD_FLOAT_TYPES(FUNCTION) 16 macro SIMD_FLOAT_TYPES(FUNCTION)
17 FUNCTION(Float32x4, float32x4, 4) 17 FUNCTION(Float32x4, float32x4, 4)
18 endmacro 18 endmacro
19 19
20 macro SIMD_INT_TYPES(FUNCTION) 20 macro SIMD_INT_TYPES(FUNCTION)
21 FUNCTION(Int32x4, int32x4, 4) 21 FUNCTION(Int32x4, int32x4, 4)
22 FUNCTION(Int16x8, int16x8, 8) 22 FUNCTION(Int16x8, int16x8, 8)
23 FUNCTION(Int8x16, int8x16, 16) 23 FUNCTION(Int8x16, int8x16, 16)
24 endmacro 24 endmacro
25 25
26 macro SIMD_UINT_TYPES(FUNCTION)
27 FUNCTION(Uint32x4, uint32x4, 4)
28 FUNCTION(Uint16x8, uint16x8, 8)
29 FUNCTION(Uint8x16, uint8x16, 16)
30 endmacro
31
26 macro SIMD_BOOL_TYPES(FUNCTION) 32 macro SIMD_BOOL_TYPES(FUNCTION)
27 FUNCTION(Bool32x4, bool32x4, 4) 33 FUNCTION(Bool32x4, bool32x4, 4)
28 FUNCTION(Bool16x8, bool16x8, 8) 34 FUNCTION(Bool16x8, bool16x8, 8)
29 FUNCTION(Bool8x16, bool8x16, 16) 35 FUNCTION(Bool8x16, bool8x16, 16)
30 endmacro 36 endmacro
31 37
32 macro SIMD_ALL_TYPES(FUNCTION) 38 macro SIMD_ALL_TYPES(FUNCTION)
33 SIMD_FLOAT_TYPES(FUNCTION) 39 SIMD_FLOAT_TYPES(FUNCTION)
34 SIMD_INT_TYPES(FUNCTION) 40 SIMD_INT_TYPES(FUNCTION)
41 SIMD_UINT_TYPES(FUNCTION)
35 SIMD_BOOL_TYPES(FUNCTION) 42 SIMD_BOOL_TYPES(FUNCTION)
36 endmacro 43 endmacro
37 44
38 macro DECLARE_GLOBALS(NAME, TYPE, LANES) 45 macro DECLARE_GLOBALS(NAME, TYPE, LANES)
39 var GlobalNAME = GlobalSIMD.NAME; 46 var GlobalNAME = GlobalSIMD.NAME;
40 endmacro 47 endmacro
41 48
42 SIMD_ALL_TYPES(DECLARE_GLOBALS) 49 SIMD_ALL_TYPES(DECLARE_GLOBALS)
43 50
44 macro DECLARE_COMMON_FUNCTIONS(NAME, TYPE, LANES) 51 macro DECLARE_COMMON_FUNCTIONS(NAME, TYPE, LANES)
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 if (typeof(this) !== 'TYPE' && %_ClassOf(this) !== 'NAME') { 85 if (typeof(this) !== 'TYPE' && %_ClassOf(this) !== 'NAME') {
79 throw MakeTypeError(kIncompatibleMethodReceiver, 86 throw MakeTypeError(kIncompatibleMethodReceiver,
80 "NAME.prototype.valueOf", this); 87 "NAME.prototype.valueOf", this);
81 } 88 }
82 return %_ValueOf(this); 89 return %_ValueOf(this);
83 } 90 }
84 91
85 function NAMEExtractLaneJS(instance, lane) { 92 function NAMEExtractLaneJS(instance, lane) {
86 return %NAMEExtractLane(instance, lane); 93 return %NAMEExtractLane(instance, lane);
87 } 94 }
88
89 function NAMEEqualJS(a, b) {
90 return %NAMEEqual(a, b);
91 }
92
93 function NAMENotEqualJS(a, b) {
94 return %NAMENotEqual(a, b);
95 }
96 endmacro 95 endmacro
97 96
98 SIMD_ALL_TYPES(DECLARE_COMMON_FUNCTIONS) 97 SIMD_ALL_TYPES(DECLARE_COMMON_FUNCTIONS)
99 98
100 macro DECLARE_INT_FUNCTIONS(NAME, TYPE, LANES) 99 macro DECLARE_INT_FUNCTIONS(NAME, TYPE, LANES)
101 function NAMEShiftLeftByScalarJS(instance, shift) { 100 function NAMEShiftLeftByScalarJS(instance, shift) {
102 return %NAMEShiftLeftByScalar(instance, shift); 101 return %NAMEShiftLeftByScalar(instance, shift);
103 } 102 }
103
104 function NAMEShiftRightArithmeticByScalarJS(instance, shift) {
105 return %NAMEShiftRightArithmeticByScalar(instance, shift);
106 }
107 endmacro
108
109 SIMD_INT_TYPES(DECLARE_INT_FUNCTIONS)
110
111 macro DECLARE_UINT_FUNCTIONS(NAME, TYPE, LANES)
112 function NAMEShiftLeftByScalarJS(instance, shift) {
113 return %NAMEShiftLeftByScalar(instance, shift);
114 }
104 115
105 function NAMEShiftRightLogicalByScalarJS(instance, shift) { 116 function NAMEShiftRightLogicalByScalarJS(instance, shift) {
106 return %NAMEShiftRightLogicalByScalar(instance, shift); 117 return %NAMEShiftRightLogicalByScalar(instance, shift);
107 } 118 }
108 119
109 function NAMEShiftRightArithmeticByScalarJS(instance, shift) { 120 function NAMEHorizontalSumJS(instance) {
110 return %NAMEShiftRightArithmeticByScalar(instance, shift); 121 return %NAMEHorizontalSum(instance);
111 } 122 }
112 endmacro 123 endmacro
113 124
114 SIMD_INT_TYPES(DECLARE_INT_FUNCTIONS) 125 SIMD_UINT_TYPES(DECLARE_UINT_FUNCTIONS)
126
127 macro SIMD_SMALL_INT_TYPES(FUNCTION)
128 FUNCTION(Int16x8)
129 FUNCTION(Int8x16)
130 FUNCTION(Uint8x16)
131 FUNCTION(Uint16x8)
132 endmacro
133
134 macro DECLARE_SMALL_INT_FUNCTIONS(NAME)
135 function NAMEAddSaturateJS(a, b) {
136 return %NAMEAddSaturate(a, b);
137 }
138
139 function NAMESubSaturateJS(a, b) {
140 return %NAMESubSaturate(a, b);
141 }
142 endmacro
143
144 SIMD_SMALL_INT_TYPES(DECLARE_SMALL_INT_FUNCTIONS)
145
146 macro SIMD_SMALL_UINT_TYPES(FUNCTION)
147 FUNCTION(Uint8x16)
148 FUNCTION(Uint16x8)
149 endmacro
150
151 macro DECLARE_SMALL_UINT_FUNCTIONS(NAME)
152 function NAMEAbsoluteDifferenceJS(a, b) {
153 return %NAMEAbsoluteDifference(a, b);
154 }
155
156 function NAMEWidenedAbsoluteDifferenceJS(a, b) {
157 return %NAMEWidenedAbsoluteDifference(a, b);
158 }
159 endmacro
160
161 SIMD_SMALL_UINT_TYPES(DECLARE_SMALL_UINT_FUNCTIONS)
162
163 macro DECLARE_SIGNED_FUNCTIONS(NAME, TYPE, LANES)
164 function NAMENegJS(a) {
165 return %NAMENeg(a);
166 }
167 endmacro
168
169 SIMD_FLOAT_TYPES(DECLARE_SIGNED_FUNCTIONS)
170 SIMD_INT_TYPES(DECLARE_SIGNED_FUNCTIONS)
115 171
116 macro DECLARE_BOOL_FUNCTIONS(NAME, TYPE, LANES) 172 macro DECLARE_BOOL_FUNCTIONS(NAME, TYPE, LANES)
117 function NAMEReplaceLaneJS(instance, lane, value) { 173 function NAMEReplaceLaneJS(instance, lane, value) {
118 return %NAMEReplaceLane(instance, lane, value); 174 return %NAMEReplaceLane(instance, lane, value);
119 } 175 }
120 176
121 function NAMEAnyTrueJS(s) { 177 function NAMEAnyTrueJS(s) {
122 return %NAMEAnyTrue(s); 178 return %NAMEAnyTrue(s);
123 } 179 }
124 180
125 function NAMEAllTrueJS(s) { 181 function NAMEAllTrueJS(s) {
126 return %NAMEAllTrue(s); 182 return %NAMEAllTrue(s);
127 } 183 }
128 endmacro 184 endmacro
129 185
130 SIMD_BOOL_TYPES(DECLARE_BOOL_FUNCTIONS) 186 SIMD_BOOL_TYPES(DECLARE_BOOL_FUNCTIONS)
131 187
132 macro SIMD_UNSIGNED_INT_TYPES(FUNCTION)
133 FUNCTION(Int16x8)
134 FUNCTION(Int8x16)
135 endmacro
136
137 macro DECLARE_UNSIGNED_INT_FUNCTIONS(NAME)
138 function NAMEUnsignedExtractLaneJS(instance, lane) {
139 return %NAMEUnsignedExtractLane(instance, lane);
140 }
141 endmacro
142
143 SIMD_UNSIGNED_INT_TYPES(DECLARE_UNSIGNED_INT_FUNCTIONS)
144
145 macro SIMD_NUMERIC_TYPES(FUNCTION) 188 macro SIMD_NUMERIC_TYPES(FUNCTION)
146 SIMD_FLOAT_TYPES(FUNCTION) 189 SIMD_FLOAT_TYPES(FUNCTION)
147 SIMD_INT_TYPES(FUNCTION) 190 SIMD_INT_TYPES(FUNCTION)
191 SIMD_UINT_TYPES(FUNCTION)
148 endmacro 192 endmacro
149 193
150 macro DECLARE_NUMERIC_FUNCTIONS(NAME, TYPE, LANES) 194 macro DECLARE_NUMERIC_FUNCTIONS(NAME, TYPE, LANES)
151 function NAMEReplaceLaneJS(instance, lane, value) { 195 function NAMEReplaceLaneJS(instance, lane, value) {
152 return %NAMEReplaceLane(instance, lane, TO_NUMBER_INLINE(value)); 196 return %NAMEReplaceLane(instance, lane, TO_NUMBER_INLINE(value));
153 } 197 }
154 198
155 function NAMESelectJS(selector, a, b) { 199 function NAMESelectJS(selector, a, b) {
156 return %NAMESelect(selector, a, b); 200 return %NAMESelect(selector, a, b);
157 } 201 }
158 202
159 function NAMENegJS(a) {
160 return %NAMENeg(a);
161 }
162
163 function NAMEAddJS(a, b) { 203 function NAMEAddJS(a, b) {
164 return %NAMEAdd(a, b); 204 return %NAMEAdd(a, b);
165 } 205 }
166 206
167 function NAMESubJS(a, b) { 207 function NAMESubJS(a, b) {
168 return %NAMESub(a, b); 208 return %NAMESub(a, b);
169 } 209 }
170 210
171 function NAMEMulJS(a, b) { 211 function NAMEMulJS(a, b) {
172 return %NAMEMul(a, b); 212 return %NAMEMul(a, b);
173 } 213 }
174 214
175 function NAMEMinJS(a, b) { 215 function NAMEMinJS(a, b) {
176 return %NAMEMin(a, b); 216 return %NAMEMin(a, b);
177 } 217 }
178 218
179 function NAMEMaxJS(a, b) { 219 function NAMEMaxJS(a, b) {
180 return %NAMEMax(a, b); 220 return %NAMEMax(a, b);
181 } 221 }
182 222
223 function NAMEEqualJS(a, b) {
224 return %NAMEEqual(a, b);
225 }
226
227 function NAMENotEqualJS(a, b) {
228 return %NAMENotEqual(a, b);
229 }
230
183 function NAMELessThanJS(a, b) { 231 function NAMELessThanJS(a, b) {
184 return %NAMELessThan(a, b); 232 return %NAMELessThan(a, b);
185 } 233 }
186 234
187 function NAMELessThanOrEqualJS(a, b) { 235 function NAMELessThanOrEqualJS(a, b) {
188 return %NAMELessThanOrEqual(a, b); 236 return %NAMELessThanOrEqual(a, b);
189 } 237 }
190 238
191 function NAMEGreaterThanJS(a, b) { 239 function NAMEGreaterThanJS(a, b) {
192 return %NAMEGreaterThan(a, b); 240 return %NAMEGreaterThan(a, b);
193 } 241 }
194 242
195 function NAMEGreaterThanOrEqualJS(a, b) { 243 function NAMEGreaterThanOrEqualJS(a, b) {
196 return %NAMEGreaterThanOrEqual(a, b); 244 return %NAMEGreaterThanOrEqual(a, b);
197 } 245 }
198 endmacro 246 endmacro
199 247
200 SIMD_NUMERIC_TYPES(DECLARE_NUMERIC_FUNCTIONS) 248 SIMD_NUMERIC_TYPES(DECLARE_NUMERIC_FUNCTIONS)
201 249
202 macro SIMD_LOGICAL_TYPES(FUNCTION) 250 macro SIMD_LOGICAL_TYPES(FUNCTION)
203 SIMD_INT_TYPES(FUNCTION) 251 SIMD_INT_TYPES(FUNCTION)
252 SIMD_UINT_TYPES(FUNCTION)
204 SIMD_BOOL_TYPES(FUNCTION) 253 SIMD_BOOL_TYPES(FUNCTION)
205 endmacro 254 endmacro
206 255
207 macro DECLARE_LOGICAL_FUNCTIONS(NAME, TYPE, LANES) 256 macro DECLARE_LOGICAL_FUNCTIONS(NAME, TYPE, LANES)
208 function NAMEAndJS(a, b) { 257 function NAMEAndJS(a, b) {
209 return %NAMEAnd(a, b); 258 return %NAMEAnd(a, b);
210 } 259 }
211 260
212 function NAMEOrJS(a, b) { 261 function NAMEOrJS(a, b) {
213 return %NAMEOr(a, b); 262 return %NAMEOr(a, b);
214 } 263 }
215 264
216 function NAMEXorJS(a, b) { 265 function NAMEXorJS(a, b) {
217 return %NAMEXor(a, b); 266 return %NAMEXor(a, b);
218 } 267 }
219 268
220 function NAMENotJS(a) { 269 function NAMENotJS(a) {
221 return %NAMENot(a); 270 return %NAMENot(a);
222 } 271 }
223 endmacro 272 endmacro
224 273
225 SIMD_LOGICAL_TYPES(DECLARE_LOGICAL_FUNCTIONS) 274 SIMD_LOGICAL_TYPES(DECLARE_LOGICAL_FUNCTIONS)
226 275
227 macro SIMD_FROM_TYPES(FUNCTION) 276 macro SIMD_FROM_TYPES(FUNCTION)
228 FUNCTION(Float32x4, Int32x4) 277 FUNCTION(Float32x4, Int32x4)
278 FUNCTION(Float32x4, Uint32x4)
229 FUNCTION(Int32x4, Float32x4) 279 FUNCTION(Int32x4, Float32x4)
280 FUNCTION(Int32x4, Uint32x4)
281 FUNCTION(Uint32x4, Float32x4)
282 FUNCTION(Uint32x4, Int32x4)
283 FUNCTION(Int16x8, Uint16x8)
284 FUNCTION(Uint16x8, Int16x8)
285 FUNCTION(Int8x16, Uint8x16)
286 FUNCTION(Uint8x16, Int8x16)
230 endmacro 287 endmacro
231 288
232 macro DECLARE_FROM_FUNCTIONS(TO, FROM) 289 macro DECLARE_FROM_FUNCTIONS(TO, FROM)
233 function TOFromFROMJS(a) { 290 function TOFromFROMJS(a) {
234 return %TOFromFROM(a); 291 return %TOFromFROM(a);
235 } 292 }
236 endmacro 293 endmacro
237 294
238 SIMD_FROM_TYPES(DECLARE_FROM_FUNCTIONS) 295 SIMD_FROM_TYPES(DECLARE_FROM_FUNCTIONS)
239 296
240 macro SIMD_FROM_BITS_TYPES(FUNCTION) 297 macro SIMD_FROM_BITS_TYPES(FUNCTION)
241 FUNCTION(Float32x4, Int32x4) 298 FUNCTION(Float32x4, Int32x4)
299 FUNCTION(Float32x4, Uint32x4)
242 FUNCTION(Float32x4, Int16x8) 300 FUNCTION(Float32x4, Int16x8)
301 FUNCTION(Float32x4, Uint16x8)
243 FUNCTION(Float32x4, Int8x16) 302 FUNCTION(Float32x4, Int8x16)
303 FUNCTION(Float32x4, Uint8x16)
244 FUNCTION(Int32x4, Float32x4) 304 FUNCTION(Int32x4, Float32x4)
305 FUNCTION(Int32x4, Uint32x4)
245 FUNCTION(Int32x4, Int16x8) 306 FUNCTION(Int32x4, Int16x8)
307 FUNCTION(Int32x4, Uint16x8)
246 FUNCTION(Int32x4, Int8x16) 308 FUNCTION(Int32x4, Int8x16)
309 FUNCTION(Int32x4, Uint8x16)
310 FUNCTION(Uint32x4, Float32x4)
311 FUNCTION(Uint32x4, Int32x4)
312 FUNCTION(Uint32x4, Int16x8)
313 FUNCTION(Uint32x4, Uint16x8)
314 FUNCTION(Uint32x4, Int8x16)
315 FUNCTION(Uint32x4, Uint8x16)
247 FUNCTION(Int16x8, Float32x4) 316 FUNCTION(Int16x8, Float32x4)
248 FUNCTION(Int16x8, Int32x4) 317 FUNCTION(Int16x8, Int32x4)
318 FUNCTION(Int16x8, Uint32x4)
319 FUNCTION(Int16x8, Uint16x8)
249 FUNCTION(Int16x8, Int8x16) 320 FUNCTION(Int16x8, Int8x16)
321 FUNCTION(Int16x8, Uint8x16)
322 FUNCTION(Uint16x8, Float32x4)
323 FUNCTION(Uint16x8, Int32x4)
324 FUNCTION(Uint16x8, Uint32x4)
325 FUNCTION(Uint16x8, Int16x8)
326 FUNCTION(Uint16x8, Int8x16)
327 FUNCTION(Uint16x8, Uint8x16)
250 FUNCTION(Int8x16, Float32x4) 328 FUNCTION(Int8x16, Float32x4)
251 FUNCTION(Int8x16, Int32x4) 329 FUNCTION(Int8x16, Int32x4)
330 FUNCTION(Int8x16, Uint32x4)
252 FUNCTION(Int8x16, Int16x8) 331 FUNCTION(Int8x16, Int16x8)
332 FUNCTION(Int8x16, Uint16x8)
333 FUNCTION(Int8x16, Uint8x16)
334 FUNCTION(Uint8x16, Float32x4)
335 FUNCTION(Uint8x16, Int32x4)
336 FUNCTION(Uint8x16, Uint32x4)
337 FUNCTION(Uint8x16, Int16x8)
338 FUNCTION(Uint8x16, Uint16x8)
339 FUNCTION(Uint8x16, Int8x16)
253 endmacro 340 endmacro
254 341
255 macro DECLARE_FROM_BITS_FUNCTIONS(TO, FROM) 342 macro DECLARE_FROM_BITS_FUNCTIONS(TO, FROM)
256 function TOFromFROMBitsJS(a) { 343 function TOFromFROMBitsJS(a) {
257 return %TOFromFROMBits(a); 344 return %TOFromFROMBits(a);
258 } 345 }
259 endmacro 346 endmacro
260 347
261 SIMD_FROM_BITS_TYPES(DECLARE_FROM_BITS_FUNCTIONS) 348 SIMD_FROM_BITS_TYPES(DECLARE_FROM_BITS_FUNCTIONS)
262 349
263 //------------------------------------------------------------------- 350 //-------------------------------------------------------------------
264 351
352 macro SIMD_X4_TYPES(FUNCTION)
353 FUNCTION(Float32x4)
354 FUNCTION(Int32x4)
355 FUNCTION(Uint32x4)
356 FUNCTION(Bool32x4)
357 endmacro
358
359 macro DECLARE_X4_FUNCTIONS(NAME)
360 function NAMESplat(s) {
361 return %CreateNAME(s, s, s, s);
362 }
363
364 function NAMESwizzleJS(a, c0, c1, c2, c3) {
365 return %NAMESwizzle(a, c0, c1, c2, c3);
366 }
367
368 function NAMEShuffleJS(a, b, c0, c1, c2, c3) {
369 return %NAMEShuffle(a, b, c0, c1, c2, c3);
370 }
371 endmacro
372
373 SIMD_X4_TYPES(DECLARE_X4_FUNCTIONS)
374
375 macro SIMD_X8_TYPES(FUNCTION)
376 FUNCTION(Int16x8)
377 FUNCTION(Uint16x8)
378 FUNCTION(Bool16x8)
379 endmacro
380
381 macro DECLARE_X8_FUNCTIONS(NAME)
382 function NAMESplat(s) {
383 return %CreateNAME(s, s, s, s, s, s, s, s);
384 }
385
386 function NAMESwizzleJS(a, c0, c1, c2, c3, c4, c5, c6, c7) {
387 return %NAMESwizzle(a, c0, c1, c2, c3, c4, c5, c6, c7);
388 }
389
390 function NAMEShuffleJS(a, b, c0, c1, c2, c3, c4, c5, c6, c7) {
391 return %NAMEShuffle(a, b, c0, c1, c2, c3, c4, c5, c6, c7);
392 }
393 endmacro
394
395 SIMD_X8_TYPES(DECLARE_X8_FUNCTIONS)
396
397 macro SIMD_X16_TYPES(FUNCTION)
398 FUNCTION(Int8x16)
399 FUNCTION(Uint8x16)
400 FUNCTION(Bool8x16)
401 endmacro
402
403 macro DECLARE_X16_FUNCTIONS(NAME)
404 function NAMESplat(s) {
405 return %CreateNAME(s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s);
406 }
407
408 function NAMESwizzleJS(a, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11,
409 c12, c13, c14, c15) {
410 return %NAMESwizzle(a, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11,
411 c12, c13, c14, c15);
412 }
413
414 function NAMEShuffleJS(a, b, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10,
415 c11, c12, c13, c14, c15) {
416 return %NAMEShuffle(a, b, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10,
417 c11, c12, c13, c14, c15);
418 }
419 endmacro
420
421 SIMD_X16_TYPES(DECLARE_X16_FUNCTIONS)
422
423 //-------------------------------------------------------------------
424
265 function Float32x4Constructor(c0, c1, c2, c3) { 425 function Float32x4Constructor(c0, c1, c2, c3) {
266 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Float32x4"); 426 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Float32x4");
267 return %CreateFloat32x4(TO_NUMBER_INLINE(c0), TO_NUMBER_INLINE(c1), 427 return %CreateFloat32x4(TO_NUMBER_INLINE(c0), TO_NUMBER_INLINE(c1),
268 TO_NUMBER_INLINE(c2), TO_NUMBER_INLINE(c3)); 428 TO_NUMBER_INLINE(c2), TO_NUMBER_INLINE(c3));
269 } 429 }
270 430
271 431
272 function Float32x4Splat(s) {
273 return %CreateFloat32x4(s, s, s, s);
274 }
275
276
277 function Float32x4AbsJS(a) {
278 return %Float32x4Abs(a);
279 }
280
281
282 function Float32x4SqrtJS(a) {
283 return %Float32x4Sqrt(a);
284 }
285
286
287 function Float32x4RecipApproxJS(a) {
288 return %Float32x4RecipApprox(a);
289 }
290
291
292 function Float32x4RecipSqrtApproxJS(a) {
293 return %Float32x4RecipSqrtApprox(a);
294 }
295
296
297 function Float32x4DivJS(a, b) {
298 return %Float32x4Div(a, b);
299 }
300
301
302 function Float32x4MinNumJS(a, b) {
303 return %Float32x4MinNum(a, b);
304 }
305
306
307 function Float32x4MaxNumJS(a, b) {
308 return %Float32x4MaxNum(a, b);
309 }
310
311
312 function Float32x4SwizzleJS(a, c0, c1, c2, c3) {
313 return %Float32x4Swizzle(a, c0, c1, c2, c3);
314 }
315
316
317 function Float32x4ShuffleJS(a, b, c0, c1, c2, c3) {
318 return %Float32x4Shuffle(a, b, c0, c1, c2, c3);
319 }
320
321
322 function Int32x4Constructor(c0, c1, c2, c3) { 432 function Int32x4Constructor(c0, c1, c2, c3) {
323 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Int32x4"); 433 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Int32x4");
324 return %CreateInt32x4(TO_NUMBER_INLINE(c0), TO_NUMBER_INLINE(c1), 434 return %CreateInt32x4(TO_NUMBER_INLINE(c0), TO_NUMBER_INLINE(c1),
325 TO_NUMBER_INLINE(c2), TO_NUMBER_INLINE(c3)); 435 TO_NUMBER_INLINE(c2), TO_NUMBER_INLINE(c3));
326 } 436 }
327 437
328 438
329 function Int32x4Splat(s) { 439 function Uint32x4Constructor(c0, c1, c2, c3) {
330 return %CreateInt32x4(s, s, s, s); 440 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Uint32x4");
441 return %CreateUint32x4(TO_NUMBER_INLINE(c0), TO_NUMBER_INLINE(c1),
442 TO_NUMBER_INLINE(c2), TO_NUMBER_INLINE(c3));
331 } 443 }
332 444
333 445
334 function Int32x4SwizzleJS(a, c0, c1, c2, c3) {
335 return %Int32x4Swizzle(a, c0, c1, c2, c3);
336 }
337
338
339 function Int32x4ShuffleJS(a, b, c0, c1, c2, c3) {
340 return %Int32x4Shuffle(a, b, c0, c1, c2, c3);
341 }
342
343
344 function Bool32x4Constructor(c0, c1, c2, c3) { 446 function Bool32x4Constructor(c0, c1, c2, c3) {
345 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Bool32x4"); 447 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Bool32x4");
346 return %CreateBool32x4(c0, c1, c2, c3); 448 return %CreateBool32x4(c0, c1, c2, c3);
347 } 449 }
348 450
349 451
350 function Bool32x4Splat(s) {
351 return %CreateBool32x4(s, s, s, s);
352 }
353
354 function Bool32x4SwizzleJS(a, c0, c1, c2, c3) {
355 return %Bool32x4Swizzle(a, c0, c1, c2, c3);
356 }
357
358
359 function Bool32x4ShuffleJS(a, b, c0, c1, c2, c3) {
360 return %Bool32x4Shuffle(a, b, c0, c1, c2, c3);
361 }
362
363
364 function Int16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) { 452 function Int16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) {
365 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Int16x8"); 453 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Int16x8");
366 return %CreateInt16x8(TO_NUMBER_INLINE(c0), TO_NUMBER_INLINE(c1), 454 return %CreateInt16x8(TO_NUMBER_INLINE(c0), TO_NUMBER_INLINE(c1),
367 TO_NUMBER_INLINE(c2), TO_NUMBER_INLINE(c3), 455 TO_NUMBER_INLINE(c2), TO_NUMBER_INLINE(c3),
368 TO_NUMBER_INLINE(c4), TO_NUMBER_INLINE(c5), 456 TO_NUMBER_INLINE(c4), TO_NUMBER_INLINE(c5),
369 TO_NUMBER_INLINE(c6), TO_NUMBER_INLINE(c7)); 457 TO_NUMBER_INLINE(c6), TO_NUMBER_INLINE(c7));
370 } 458 }
371 459
372 460
373 function Int16x8Splat(s) { 461 function Uint16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) {
374 return %CreateInt16x8(s, s, s, s, s, s, s, s); 462 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Uint16x8");
463 return %CreateUint16x8(TO_NUMBER_INLINE(c0), TO_NUMBER_INLINE(c1),
464 TO_NUMBER_INLINE(c2), TO_NUMBER_INLINE(c3),
465 TO_NUMBER_INLINE(c4), TO_NUMBER_INLINE(c5),
466 TO_NUMBER_INLINE(c6), TO_NUMBER_INLINE(c7));
375 } 467 }
376 468
377 469
378 function Int16x8SwizzleJS(a, c0, c1, c2, c3, c4, c5, c6, c7) {
379 return %Int16x8Swizzle(a, c0, c1, c2, c3, c4, c5, c6, c7);
380 }
381
382
383 function Int16x8ShuffleJS(a, b, c0, c1, c2, c3, c4, c5, c6, c7) {
384 return %Int16x8Shuffle(a, b, c0, c1, c2, c3, c4, c5, c6, c7);
385 }
386
387
388 function Bool16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) { 470 function Bool16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) {
389 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Bool16x8"); 471 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Bool16x8");
390 return %CreateBool16x8(c0, c1, c2, c3, c4, c5, c6, c7); 472 return %CreateBool16x8(c0, c1, c2, c3, c4, c5, c6, c7);
391 } 473 }
392 474
393 475
394 function Bool16x8Splat(s) {
395 return %CreateBool16x8(s, s, s, s, s, s, s, s);
396 }
397
398
399 function Bool16x8SwizzleJS(a, c0, c1, c2, c3, c4, c5, c6, c7) {
400 return %Bool16x8Swizzle(a, c0, c1, c2, c3, c4, c5, c6, c7);
401 }
402
403
404 function Bool16x8ShuffleJS(a, b, c0, c1, c2, c3, c4, c5, c6, c7) {
405 return %Bool16x8Shuffle(a, b, c0, c1, c2, c3, c4, c5, c6, c7);
406 }
407
408
409 function Int8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, 476 function Int8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11,
410 c12, c13, c14, c15) { 477 c12, c13, c14, c15) {
411 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Int8x16"); 478 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Int8x16");
412 return %CreateInt8x16(TO_NUMBER_INLINE(c0), TO_NUMBER_INLINE(c1), 479 return %CreateInt8x16(TO_NUMBER_INLINE(c0), TO_NUMBER_INLINE(c1),
413 TO_NUMBER_INLINE(c2), TO_NUMBER_INLINE(c3), 480 TO_NUMBER_INLINE(c2), TO_NUMBER_INLINE(c3),
414 TO_NUMBER_INLINE(c4), TO_NUMBER_INLINE(c5), 481 TO_NUMBER_INLINE(c4), TO_NUMBER_INLINE(c5),
415 TO_NUMBER_INLINE(c6), TO_NUMBER_INLINE(c7), 482 TO_NUMBER_INLINE(c6), TO_NUMBER_INLINE(c7),
416 TO_NUMBER_INLINE(c8), TO_NUMBER_INLINE(c9), 483 TO_NUMBER_INLINE(c8), TO_NUMBER_INLINE(c9),
417 TO_NUMBER_INLINE(c10), TO_NUMBER_INLINE(c11), 484 TO_NUMBER_INLINE(c10), TO_NUMBER_INLINE(c11),
418 TO_NUMBER_INLINE(c12), TO_NUMBER_INLINE(c13), 485 TO_NUMBER_INLINE(c12), TO_NUMBER_INLINE(c13),
419 TO_NUMBER_INLINE(c14), TO_NUMBER_INLINE(c15)); 486 TO_NUMBER_INLINE(c14), TO_NUMBER_INLINE(c15));
420 } 487 }
421 488
422 489
423 function Int8x16Splat(s) { 490 function Uint8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11,
424 return %CreateInt8x16(s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s); 491 c12, c13, c14, c15) {
425 } 492 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Uint8x16");
426 493 return %CreateUint8x16(TO_NUMBER_INLINE(c0), TO_NUMBER_INLINE(c1),
427 494 TO_NUMBER_INLINE(c2), TO_NUMBER_INLINE(c3),
428 function Int8x16SwizzleJS(a, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, 495 TO_NUMBER_INLINE(c4), TO_NUMBER_INLINE(c5),
429 c12, c13, c14, c15) { 496 TO_NUMBER_INLINE(c6), TO_NUMBER_INLINE(c7),
430 return %Int8x16Swizzle(a, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, 497 TO_NUMBER_INLINE(c8), TO_NUMBER_INLINE(c9),
431 c12, c13, c14, c15); 498 TO_NUMBER_INLINE(c10), TO_NUMBER_INLINE(c11),
432 } 499 TO_NUMBER_INLINE(c12), TO_NUMBER_INLINE(c13),
433 500 TO_NUMBER_INLINE(c14), TO_NUMBER_INLINE(c15));
434
435 function Int8x16ShuffleJS(a, b, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10,
436 c11, c12, c13, c14, c15) {
437 return %Int8x16Shuffle(a, b, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10,
438 c11, c12, c13, c14, c15);
439 } 501 }
440 502
441 503
442 function Bool8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, 504 function Bool8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11,
443 c12, c13, c14, c15) { 505 c12, c13, c14, c15) {
444 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Bool8x16"); 506 if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Bool8x16");
445 return %CreateBool8x16(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, 507 return %CreateBool8x16(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
446 c13, c14, c15); 508 c13, c14, c15);
447 } 509 }
448 510
449 511
450 function Bool8x16Splat(s) { 512 function Float32x4AbsJS(a) {
451 return %CreateBool8x16(s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s); 513 return %Float32x4Abs(a);
452 } 514 }
453 515
454 516
455 function Bool8x16SwizzleJS(a, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, 517 function Float32x4SqrtJS(a) {
456 c12, c13, c14, c15) { 518 return %Float32x4Sqrt(a);
457 return %Bool8x16Swizzle(a, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11,
458 c12, c13, c14, c15);
459 } 519 }
460 520
461 521
462 function Bool8x16ShuffleJS(a, b, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, 522 function Float32x4RecipApproxJS(a) {
463 c11, c12, c13, c14, c15) { 523 return %Float32x4RecipApprox(a);
464 return %Bool8x16Shuffle(a, b, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10,
465 c11, c12, c13, c14, c15);
466 } 524 }
467 525
468 526
527 function Float32x4RecipSqrtApproxJS(a) {
528 return %Float32x4RecipSqrtApprox(a);
529 }
530
531
532 function Float32x4DivJS(a, b) {
533 return %Float32x4Div(a, b);
534 }
535
536
537 function Float32x4MinNumJS(a, b) {
538 return %Float32x4MinNum(a, b);
539 }
540
541
542 function Float32x4MaxNumJS(a, b) {
543 return %Float32x4MaxNum(a, b);
544 }
545
546
469 %AddNamedProperty(GlobalSIMD, symbolToStringTag, 'SIMD', READ_ONLY | DONT_ENUM); 547 %AddNamedProperty(GlobalSIMD, symbolToStringTag, 'SIMD', READ_ONLY | DONT_ENUM);
470 548
471 macro SETUP_SIMD_TYPE(NAME, TYPE, LANES) 549 macro SETUP_SIMD_TYPE(NAME, TYPE, LANES)
472 %SetCode(GlobalNAME, NAMEConstructor); 550 %SetCode(GlobalNAME, NAMEConstructor);
473 %FunctionSetPrototype(GlobalNAME, {}); 551 %FunctionSetPrototype(GlobalNAME, {});
474 %AddNamedProperty(GlobalNAME.prototype, 'constructor', GlobalNAME, 552 %AddNamedProperty(GlobalNAME.prototype, 'constructor', GlobalNAME,
475 DONT_ENUM); 553 DONT_ENUM);
476 %AddNamedProperty(GlobalNAME.prototype, symbolToStringTag, 'NAME', 554 %AddNamedProperty(GlobalNAME.prototype, symbolToStringTag, 'NAME',
477 DONT_ENUM | READ_ONLY); 555 DONT_ENUM | READ_ONLY);
478 utils.InstallFunctions(GlobalNAME.prototype, DONT_ENUM, [ 556 utils.InstallFunctions(GlobalNAME.prototype, DONT_ENUM, [
(...skipping 28 matching lines...) Expand all
507 'lessThan', Float32x4LessThanJS, 585 'lessThan', Float32x4LessThanJS,
508 'lessThanOrEqual', Float32x4LessThanOrEqualJS, 586 'lessThanOrEqual', Float32x4LessThanOrEqualJS,
509 'greaterThan', Float32x4GreaterThanJS, 587 'greaterThan', Float32x4GreaterThanJS,
510 'greaterThanOrEqual', Float32x4GreaterThanOrEqualJS, 588 'greaterThanOrEqual', Float32x4GreaterThanOrEqualJS,
511 'equal', Float32x4EqualJS, 589 'equal', Float32x4EqualJS,
512 'notEqual', Float32x4NotEqualJS, 590 'notEqual', Float32x4NotEqualJS,
513 'select', Float32x4SelectJS, 591 'select', Float32x4SelectJS,
514 'swizzle', Float32x4SwizzleJS, 592 'swizzle', Float32x4SwizzleJS,
515 'shuffle', Float32x4ShuffleJS, 593 'shuffle', Float32x4ShuffleJS,
516 'fromInt32x4', Float32x4FromInt32x4JS, 594 'fromInt32x4', Float32x4FromInt32x4JS,
595 'fromUint32x4', Float32x4FromUint32x4JS,
517 'fromInt32x4Bits', Float32x4FromInt32x4BitsJS, 596 'fromInt32x4Bits', Float32x4FromInt32x4BitsJS,
597 'fromUint32x4Bits', Float32x4FromUint32x4BitsJS,
518 'fromInt16x8Bits', Float32x4FromInt16x8BitsJS, 598 'fromInt16x8Bits', Float32x4FromInt16x8BitsJS,
599 'fromUint16x8Bits', Float32x4FromUint16x8BitsJS,
519 'fromInt8x16Bits', Float32x4FromInt8x16BitsJS, 600 'fromInt8x16Bits', Float32x4FromInt8x16BitsJS,
601 'fromUint8x16Bits', Float32x4FromUint8x16BitsJS,
520 ]); 602 ]);
521 603
522 utils.InstallFunctions(GlobalInt32x4, DONT_ENUM, [ 604 utils.InstallFunctions(GlobalInt32x4, DONT_ENUM, [
523 'splat', Int32x4Splat, 605 'splat', Int32x4Splat,
524 'check', Int32x4CheckJS, 606 'check', Int32x4CheckJS,
525 'extractLane', Int32x4ExtractLaneJS, 607 'extractLane', Int32x4ExtractLaneJS,
526 'replaceLane', Int32x4ReplaceLaneJS, 608 'replaceLane', Int32x4ReplaceLaneJS,
527 'neg', Int32x4NegJS, 609 'neg', Int32x4NegJS,
528 'add', Int32x4AddJS, 610 'add', Int32x4AddJS,
529 'sub', Int32x4SubJS, 611 'sub', Int32x4SubJS,
530 'mul', Int32x4MulJS, 612 'mul', Int32x4MulJS,
531 'min', Int32x4MinJS, 613 'min', Int32x4MinJS,
532 'max', Int32x4MaxJS, 614 'max', Int32x4MaxJS,
533 'and', Int32x4AndJS, 615 'and', Int32x4AndJS,
534 'or', Int32x4OrJS, 616 'or', Int32x4OrJS,
535 'xor', Int32x4XorJS, 617 'xor', Int32x4XorJS,
536 'not', Int32x4NotJS, 618 'not', Int32x4NotJS,
537 'shiftLeftByScalar', Int32x4ShiftLeftByScalarJS, 619 'shiftLeftByScalar', Int32x4ShiftLeftByScalarJS,
538 'shiftRightLogicalByScalar', Int32x4ShiftRightLogicalByScalarJS,
539 'shiftRightArithmeticByScalar', Int32x4ShiftRightArithmeticByScalarJS, 620 'shiftRightArithmeticByScalar', Int32x4ShiftRightArithmeticByScalarJS,
540 'lessThan', Int32x4LessThanJS, 621 'lessThan', Int32x4LessThanJS,
541 'lessThanOrEqual', Int32x4LessThanOrEqualJS, 622 'lessThanOrEqual', Int32x4LessThanOrEqualJS,
542 'greaterThan', Int32x4GreaterThanJS, 623 'greaterThan', Int32x4GreaterThanJS,
543 'greaterThanOrEqual', Int32x4GreaterThanOrEqualJS, 624 'greaterThanOrEqual', Int32x4GreaterThanOrEqualJS,
544 'equal', Int32x4EqualJS, 625 'equal', Int32x4EqualJS,
545 'notEqual', Int32x4NotEqualJS, 626 'notEqual', Int32x4NotEqualJS,
546 'select', Int32x4SelectJS, 627 'select', Int32x4SelectJS,
547 'swizzle', Int32x4SwizzleJS, 628 'swizzle', Int32x4SwizzleJS,
548 'shuffle', Int32x4ShuffleJS, 629 'shuffle', Int32x4ShuffleJS,
549 'fromFloat32x4', Int32x4FromFloat32x4JS, 630 'fromFloat32x4', Int32x4FromFloat32x4JS,
631 'fromUint32x4', Int32x4FromUint32x4JS,
550 'fromFloat32x4Bits', Int32x4FromFloat32x4BitsJS, 632 'fromFloat32x4Bits', Int32x4FromFloat32x4BitsJS,
633 'fromUint32x4Bits', Int32x4FromUint32x4BitsJS,
551 'fromInt16x8Bits', Int32x4FromInt16x8BitsJS, 634 'fromInt16x8Bits', Int32x4FromInt16x8BitsJS,
635 'fromUint16x8Bits', Int32x4FromUint16x8BitsJS,
552 'fromInt8x16Bits', Int32x4FromInt8x16BitsJS, 636 'fromInt8x16Bits', Int32x4FromInt8x16BitsJS,
637 'fromUint8x16Bits', Int32x4FromUint8x16BitsJS,
638 ]);
639
640 utils.InstallFunctions(GlobalUint32x4, DONT_ENUM, [
641 'splat', Uint32x4Splat,
642 'check', Uint32x4CheckJS,
643 'extractLane', Uint32x4ExtractLaneJS,
644 'replaceLane', Uint32x4ReplaceLaneJS,
645 'add', Uint32x4AddJS,
646 'sub', Uint32x4SubJS,
647 'mul', Uint32x4MulJS,
648 'min', Uint32x4MinJS,
649 'max', Uint32x4MaxJS,
650 'and', Uint32x4AndJS,
651 'or', Uint32x4OrJS,
652 'xor', Uint32x4XorJS,
653 'not', Uint32x4NotJS,
654 'shiftLeftByScalar', Uint32x4ShiftLeftByScalarJS,
655 'shiftRightLogicalByScalar', Uint32x4ShiftRightLogicalByScalarJS,
656 'horizontalSum', Uint32x4HorizontalSumJS,
657 'lessThan', Uint32x4LessThanJS,
658 'lessThanOrEqual', Uint32x4LessThanOrEqualJS,
659 'greaterThan', Uint32x4GreaterThanJS,
660 'greaterThanOrEqual', Uint32x4GreaterThanOrEqualJS,
661 'equal', Uint32x4EqualJS,
662 'notEqual', Uint32x4NotEqualJS,
663 'select', Uint32x4SelectJS,
664 'swizzle', Uint32x4SwizzleJS,
665 'shuffle', Uint32x4ShuffleJS,
666 'fromFloat32x4', Uint32x4FromFloat32x4JS,
667 'fromInt32x4', Uint32x4FromInt32x4JS,
668 'fromFloat32x4Bits', Uint32x4FromFloat32x4BitsJS,
669 'fromInt32x4Bits', Uint32x4FromInt32x4BitsJS,
670 'fromInt16x8Bits', Uint32x4FromInt16x8BitsJS,
671 'fromUint16x8Bits', Uint32x4FromUint16x8BitsJS,
672 'fromInt8x16Bits', Uint32x4FromInt8x16BitsJS,
673 'fromUint8x16Bits', Uint32x4FromUint8x16BitsJS,
553 ]); 674 ]);
554 675
555 utils.InstallFunctions(GlobalBool32x4, DONT_ENUM, [ 676 utils.InstallFunctions(GlobalBool32x4, DONT_ENUM, [
556 'splat', Bool32x4Splat, 677 'splat', Bool32x4Splat,
557 'check', Bool32x4CheckJS, 678 'check', Bool32x4CheckJS,
558 'extractLane', Bool32x4ExtractLaneJS, 679 'extractLane', Bool32x4ExtractLaneJS,
559 'replaceLane', Bool32x4ReplaceLaneJS, 680 'replaceLane', Bool32x4ReplaceLaneJS,
560 'and', Bool32x4AndJS, 681 'and', Bool32x4AndJS,
561 'or', Bool32x4OrJS, 682 'or', Bool32x4OrJS,
562 'xor', Bool32x4XorJS, 683 'xor', Bool32x4XorJS,
563 'not', Bool32x4NotJS, 684 'not', Bool32x4NotJS,
564 'anyTrue', Bool32x4AnyTrueJS, 685 'anyTrue', Bool32x4AnyTrueJS,
565 'allTrue', Bool32x4AllTrueJS, 686 'allTrue', Bool32x4AllTrueJS,
566 'equal', Bool32x4EqualJS,
567 'notEqual', Bool32x4NotEqualJS,
568 'swizzle', Bool32x4SwizzleJS, 687 'swizzle', Bool32x4SwizzleJS,
569 'shuffle', Bool32x4ShuffleJS, 688 'shuffle', Bool32x4ShuffleJS,
570 ]); 689 ]);
571 690
572 utils.InstallFunctions(GlobalInt16x8, DONT_ENUM, [ 691 utils.InstallFunctions(GlobalInt16x8, DONT_ENUM, [
573 'splat', Int16x8Splat, 692 'splat', Int16x8Splat,
574 'check', Int16x8CheckJS, 693 'check', Int16x8CheckJS,
575 'extractLane', Int16x8ExtractLaneJS, 694 'extractLane', Int16x8ExtractLaneJS,
576 'unsignedExtractLane', Int16x8UnsignedExtractLaneJS,
577 'replaceLane', Int16x8ReplaceLaneJS, 695 'replaceLane', Int16x8ReplaceLaneJS,
578 'neg', Int16x8NegJS, 696 'neg', Int16x8NegJS,
579 'add', Int16x8AddJS, 697 'add', Int16x8AddJS,
580 'sub', Int16x8SubJS, 698 'sub', Int16x8SubJS,
699 'addSaturate', Int16x8AddSaturateJS,
700 'subSaturate', Int16x8SubSaturateJS,
581 'mul', Int16x8MulJS, 701 'mul', Int16x8MulJS,
582 'min', Int16x8MinJS, 702 'min', Int16x8MinJS,
583 'max', Int16x8MaxJS, 703 'max', Int16x8MaxJS,
584 'and', Int16x8AndJS, 704 'and', Int16x8AndJS,
585 'or', Int16x8OrJS, 705 'or', Int16x8OrJS,
586 'xor', Int16x8XorJS, 706 'xor', Int16x8XorJS,
587 'not', Int16x8NotJS, 707 'not', Int16x8NotJS,
588 'shiftLeftByScalar', Int16x8ShiftLeftByScalarJS, 708 'shiftLeftByScalar', Int16x8ShiftLeftByScalarJS,
589 'shiftRightLogicalByScalar', Int16x8ShiftRightLogicalByScalarJS,
590 'shiftRightArithmeticByScalar', Int16x8ShiftRightArithmeticByScalarJS, 709 'shiftRightArithmeticByScalar', Int16x8ShiftRightArithmeticByScalarJS,
591 'lessThan', Int16x8LessThanJS, 710 'lessThan', Int16x8LessThanJS,
592 'lessThanOrEqual', Int16x8LessThanOrEqualJS, 711 'lessThanOrEqual', Int16x8LessThanOrEqualJS,
593 'greaterThan', Int16x8GreaterThanJS, 712 'greaterThan', Int16x8GreaterThanJS,
594 'greaterThanOrEqual', Int16x8GreaterThanOrEqualJS, 713 'greaterThanOrEqual', Int16x8GreaterThanOrEqualJS,
595 'equal', Int16x8EqualJS, 714 'equal', Int16x8EqualJS,
596 'notEqual', Int16x8NotEqualJS, 715 'notEqual', Int16x8NotEqualJS,
597 'select', Int16x8SelectJS, 716 'select', Int16x8SelectJS,
598 'swizzle', Int16x8SwizzleJS, 717 'swizzle', Int16x8SwizzleJS,
599 'shuffle', Int16x8ShuffleJS, 718 'shuffle', Int16x8ShuffleJS,
719 'fromUint16x8', Int16x8FromUint16x8JS,
600 'fromFloat32x4Bits', Int16x8FromFloat32x4BitsJS, 720 'fromFloat32x4Bits', Int16x8FromFloat32x4BitsJS,
601 'fromInt32x4Bits', Int16x8FromInt32x4BitsJS, 721 'fromInt32x4Bits', Int16x8FromInt32x4BitsJS,
722 'fromUint32x4Bits', Int16x8FromUint32x4BitsJS,
723 'fromUint16x8Bits', Int16x8FromUint16x8BitsJS,
602 'fromInt8x16Bits', Int16x8FromInt8x16BitsJS, 724 'fromInt8x16Bits', Int16x8FromInt8x16BitsJS,
725 'fromUint8x16Bits', Int16x8FromUint8x16BitsJS,
726 ]);
727
728 utils.InstallFunctions(GlobalUint16x8, DONT_ENUM, [
729 'splat', Uint16x8Splat,
730 'check', Uint16x8CheckJS,
731 'extractLane', Uint16x8ExtractLaneJS,
732 'replaceLane', Uint16x8ReplaceLaneJS,
733 'add', Uint16x8AddJS,
734 'sub', Uint16x8SubJS,
735 'addSaturate', Uint16x8AddSaturateJS,
736 'subSaturate', Uint16x8SubSaturateJS,
737 'mul', Uint16x8MulJS,
738 'min', Uint16x8MinJS,
739 'max', Uint16x8MaxJS,
740 'and', Uint16x8AndJS,
741 'or', Uint16x8OrJS,
742 'xor', Uint16x8XorJS,
743 'not', Uint16x8NotJS,
744 'shiftLeftByScalar', Uint16x8ShiftLeftByScalarJS,
745 'shiftRightLogicalByScalar', Uint16x8ShiftRightLogicalByScalarJS,
746 'horizontalSum', Uint16x8HorizontalSumJS,
747 'absoluteDifference', Uint16x8AbsoluteDifferenceJS,
748 'widenedAbsoluteDifference', Uint16x8WidenedAbsoluteDifferenceJS,
749 'lessThan', Uint16x8LessThanJS,
750 'lessThanOrEqual', Uint16x8LessThanOrEqualJS,
751 'greaterThan', Uint16x8GreaterThanJS,
752 'greaterThanOrEqual', Uint16x8GreaterThanOrEqualJS,
753 'equal', Uint16x8EqualJS,
754 'notEqual', Uint16x8NotEqualJS,
755 'select', Uint16x8SelectJS,
756 'swizzle', Uint16x8SwizzleJS,
757 'shuffle', Uint16x8ShuffleJS,
758 'fromInt16x8', Uint16x8FromInt16x8JS,
759 'fromFloat32x4Bits', Uint16x8FromFloat32x4BitsJS,
760 'fromInt32x4Bits', Uint16x8FromInt32x4BitsJS,
761 'fromUint32x4Bits', Uint16x8FromUint32x4BitsJS,
762 'fromInt16x8Bits', Uint16x8FromInt16x8BitsJS,
763 'fromInt8x16Bits', Uint16x8FromInt8x16BitsJS,
764 'fromUint8x16Bits', Uint16x8FromUint8x16BitsJS,
603 ]); 765 ]);
604 766
605 utils.InstallFunctions(GlobalBool16x8, DONT_ENUM, [ 767 utils.InstallFunctions(GlobalBool16x8, DONT_ENUM, [
606 'splat', Bool16x8Splat, 768 'splat', Bool16x8Splat,
607 'check', Bool16x8CheckJS, 769 'check', Bool16x8CheckJS,
608 'extractLane', Bool16x8ExtractLaneJS, 770 'extractLane', Bool16x8ExtractLaneJS,
609 'replaceLane', Bool16x8ReplaceLaneJS, 771 'replaceLane', Bool16x8ReplaceLaneJS,
610 'and', Bool16x8AndJS, 772 'and', Bool16x8AndJS,
611 'or', Bool16x8OrJS, 773 'or', Bool16x8OrJS,
612 'xor', Bool16x8XorJS, 774 'xor', Bool16x8XorJS,
613 'not', Bool16x8NotJS, 775 'not', Bool16x8NotJS,
614 'anyTrue', Bool16x8AnyTrueJS, 776 'anyTrue', Bool16x8AnyTrueJS,
615 'allTrue', Bool16x8AllTrueJS, 777 'allTrue', Bool16x8AllTrueJS,
616 'equal', Bool16x8EqualJS,
617 'notEqual', Bool16x8NotEqualJS,
618 'swizzle', Bool16x8SwizzleJS, 778 'swizzle', Bool16x8SwizzleJS,
619 'shuffle', Bool16x8ShuffleJS, 779 'shuffle', Bool16x8ShuffleJS,
620 ]); 780 ]);
621 781
622 utils.InstallFunctions(GlobalInt8x16, DONT_ENUM, [ 782 utils.InstallFunctions(GlobalInt8x16, DONT_ENUM, [
623 'splat', Int8x16Splat, 783 'splat', Int8x16Splat,
624 'check', Int8x16CheckJS, 784 'check', Int8x16CheckJS,
625 'extractLane', Int8x16ExtractLaneJS, 785 'extractLane', Int8x16ExtractLaneJS,
626 'unsignedExtractLane', Int8x16UnsignedExtractLaneJS,
627 'replaceLane', Int8x16ReplaceLaneJS, 786 'replaceLane', Int8x16ReplaceLaneJS,
628 'neg', Int8x16NegJS, 787 'neg', Int8x16NegJS,
629 'add', Int8x16AddJS, 788 'add', Int8x16AddJS,
630 'sub', Int8x16SubJS, 789 'sub', Int8x16SubJS,
790 'addSaturate', Int8x16AddSaturateJS,
791 'subSaturate', Int8x16SubSaturateJS,
631 'mul', Int8x16MulJS, 792 'mul', Int8x16MulJS,
632 'min', Int8x16MinJS, 793 'min', Int8x16MinJS,
633 'max', Int8x16MaxJS, 794 'max', Int8x16MaxJS,
634 'and', Int8x16AndJS, 795 'and', Int8x16AndJS,
635 'or', Int8x16OrJS, 796 'or', Int8x16OrJS,
636 'xor', Int8x16XorJS, 797 'xor', Int8x16XorJS,
637 'not', Int8x16NotJS, 798 'not', Int8x16NotJS,
638 'shiftLeftByScalar', Int8x16ShiftLeftByScalarJS, 799 'shiftLeftByScalar', Int8x16ShiftLeftByScalarJS,
639 'shiftRightLogicalByScalar', Int8x16ShiftRightLogicalByScalarJS,
640 'shiftRightArithmeticByScalar', Int8x16ShiftRightArithmeticByScalarJS, 800 'shiftRightArithmeticByScalar', Int8x16ShiftRightArithmeticByScalarJS,
641 'lessThan', Int8x16LessThanJS, 801 'lessThan', Int8x16LessThanJS,
642 'lessThanOrEqual', Int8x16LessThanOrEqualJS, 802 'lessThanOrEqual', Int8x16LessThanOrEqualJS,
643 'greaterThan', Int8x16GreaterThanJS, 803 'greaterThan', Int8x16GreaterThanJS,
644 'greaterThanOrEqual', Int8x16GreaterThanOrEqualJS, 804 'greaterThanOrEqual', Int8x16GreaterThanOrEqualJS,
645 'equal', Int8x16EqualJS, 805 'equal', Int8x16EqualJS,
646 'notEqual', Int8x16NotEqualJS, 806 'notEqual', Int8x16NotEqualJS,
647 'select', Int8x16SelectJS, 807 'select', Int8x16SelectJS,
648 'swizzle', Int8x16SwizzleJS, 808 'swizzle', Int8x16SwizzleJS,
649 'shuffle', Int8x16ShuffleJS, 809 'shuffle', Int8x16ShuffleJS,
810 'fromUint8x16', Int8x16FromUint8x16JS,
650 'fromFloat32x4Bits', Int8x16FromFloat32x4BitsJS, 811 'fromFloat32x4Bits', Int8x16FromFloat32x4BitsJS,
651 'fromInt32x4Bits', Int8x16FromInt32x4BitsJS, 812 'fromInt32x4Bits', Int8x16FromInt32x4BitsJS,
813 'fromUint32x4Bits', Int8x16FromUint32x4BitsJS,
652 'fromInt16x8Bits', Int8x16FromInt16x8BitsJS, 814 'fromInt16x8Bits', Int8x16FromInt16x8BitsJS,
815 'fromUint16x8Bits', Int8x16FromUint16x8BitsJS,
816 'fromUint8x16Bits', Int8x16FromUint8x16BitsJS,
817 ]);
818
819 utils.InstallFunctions(GlobalUint8x16, DONT_ENUM, [
820 'splat', Uint8x16Splat,
821 'check', Uint8x16CheckJS,
822 'extractLane', Uint8x16ExtractLaneJS,
823 'replaceLane', Uint8x16ReplaceLaneJS,
824 'add', Uint8x16AddJS,
825 'sub', Uint8x16SubJS,
826 'addSaturate', Uint8x16AddSaturateJS,
827 'subSaturate', Uint8x16SubSaturateJS,
828 'mul', Uint8x16MulJS,
829 'min', Uint8x16MinJS,
830 'max', Uint8x16MaxJS,
831 'and', Uint8x16AndJS,
832 'or', Uint8x16OrJS,
833 'xor', Uint8x16XorJS,
834 'not', Uint8x16NotJS,
835 'shiftLeftByScalar', Uint8x16ShiftLeftByScalarJS,
836 'shiftRightLogicalByScalar', Uint8x16ShiftRightLogicalByScalarJS,
837 'horizontalSum', Uint8x16HorizontalSumJS,
838 'absoluteDifference', Uint8x16AbsoluteDifferenceJS,
839 'widenedAbsoluteDifference', Uint8x16WidenedAbsoluteDifferenceJS,
840 'lessThan', Uint8x16LessThanJS,
841 'lessThanOrEqual', Uint8x16LessThanOrEqualJS,
842 'greaterThan', Uint8x16GreaterThanJS,
843 'greaterThanOrEqual', Uint8x16GreaterThanOrEqualJS,
844 'equal', Uint8x16EqualJS,
845 'notEqual', Uint8x16NotEqualJS,
846 'select', Uint8x16SelectJS,
847 'swizzle', Uint8x16SwizzleJS,
848 'shuffle', Uint8x16ShuffleJS,
849 'fromInt8x16', Uint8x16FromInt8x16JS,
850 'fromFloat32x4Bits', Uint8x16FromFloat32x4BitsJS,
851 'fromInt32x4Bits', Uint8x16FromInt32x4BitsJS,
852 'fromUint32x4Bits', Uint8x16FromUint32x4BitsJS,
853 'fromInt16x8Bits', Uint8x16FromInt16x8BitsJS,
854 'fromUint16x8Bits', Uint8x16FromUint16x8BitsJS,
855 'fromInt8x16Bits', Uint8x16FromInt8x16BitsJS,
653 ]); 856 ]);
654 857
655 utils.InstallFunctions(GlobalBool8x16, DONT_ENUM, [ 858 utils.InstallFunctions(GlobalBool8x16, DONT_ENUM, [
656 'splat', Bool8x16Splat, 859 'splat', Bool8x16Splat,
657 'check', Bool8x16CheckJS, 860 'check', Bool8x16CheckJS,
658 'extractLane', Bool8x16ExtractLaneJS, 861 'extractLane', Bool8x16ExtractLaneJS,
659 'replaceLane', Bool8x16ReplaceLaneJS, 862 'replaceLane', Bool8x16ReplaceLaneJS,
660 'and', Bool8x16AndJS, 863 'and', Bool8x16AndJS,
661 'or', Bool8x16OrJS, 864 'or', Bool8x16OrJS,
662 'xor', Bool8x16XorJS, 865 'xor', Bool8x16XorJS,
663 'not', Bool8x16NotJS, 866 'not', Bool8x16NotJS,
664 'anyTrue', Bool8x16AnyTrueJS, 867 'anyTrue', Bool8x16AnyTrueJS,
665 'allTrue', Bool8x16AllTrueJS, 868 'allTrue', Bool8x16AllTrueJS,
666 'equal', Bool8x16EqualJS,
667 'notEqual', Bool8x16NotEqualJS,
668 'swizzle', Bool8x16SwizzleJS, 869 'swizzle', Bool8x16SwizzleJS,
669 'shuffle', Bool8x16ShuffleJS, 870 'shuffle', Bool8x16ShuffleJS,
670 ]); 871 ]);
671 872
672 utils.Export(function(to) { 873 utils.Export(function(to) {
673 to.Float32x4ToString = Float32x4ToString; 874 to.Float32x4ToString = Float32x4ToString;
674 to.Int32x4ToString = Int32x4ToString; 875 to.Int32x4ToString = Int32x4ToString;
876 to.Uint32x4ToString = Uint32x4ToString;
675 to.Bool32x4ToString = Bool32x4ToString; 877 to.Bool32x4ToString = Bool32x4ToString;
676 to.Int16x8ToString = Int16x8ToString; 878 to.Int16x8ToString = Int16x8ToString;
879 to.Uint16x8ToString = Uint16x8ToString;
677 to.Bool16x8ToString = Bool16x8ToString; 880 to.Bool16x8ToString = Bool16x8ToString;
678 to.Int8x16ToString = Int8x16ToString; 881 to.Int8x16ToString = Int8x16ToString;
882 to.Uint8x16ToString = Uint8x16ToString;
679 to.Bool8x16ToString = Bool8x16ToString; 883 to.Bool8x16ToString = Bool8x16ToString;
680 }); 884 });
681 885
682 }) 886 })
OLDNEW
« no previous file with comments | « src/contexts.h ('k') | src/heap/heap.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698