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

Side by Side Diff: test/mjsunit/wasm/asm-wasm.js

Issue 1581913005: Allow asm modules to be instatiated with external heaps. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix Created 4 years, 11 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/wasm/wasm-js.cc ('k') | no next file » | 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 // Flags: --expose-wasm 5 // Flags: --expose-wasm
6 6
7 function EmptyTest() { 7 function EmptyTest() {
8 "use asm"; 8 "use asm";
9 function caller() { 9 function caller() {
10 empty(); 10 empty();
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 m[2] = ((m[i >> 2]|0) + 1) | 0; 384 m[2] = ((m[i >> 2]|0) + 1) | 0;
385 return m[2] | 0; 385 return m[2] | 0;
386 } 386 }
387 387
388 return {caller: caller}; 388 return {caller: caller};
389 } 389 }
390 390
391 assertEquals(7, _WASMEXP_.asmCompileRun(TestInt32HeapAccess.toString())); 391 assertEquals(7, _WASMEXP_.asmCompileRun(TestInt32HeapAccess.toString()));
392 392
393 393
394 function TestInt32HeapAccessExternal() {
395 var memory = new ArrayBuffer(1024);
396 var memory_int32 = new Int32Array(memory);
397 var module = _WASMEXP_.instantiateModuleFromAsm(
398 TestInt32HeapAccess.toString(), null, memory);
399 module.__init__();
400 assertEquals(7, module.caller());
401 assertEquals(7, memory_int32[2]);
402 }
403
404 TestInt32HeapAccessExternal();
405
406
394 function TestHeapAccessIntTypes() { 407 function TestHeapAccessIntTypes() {
395 var types = [ 408 var types = [
396 ['Int8Array', '>> 0'], 409 [Int8Array, 'Int8Array', '>> 0'],
397 ['Uint8Array', '>> 0'], 410 [Uint8Array, 'Uint8Array', '>> 0'],
398 ['Int16Array', '>> 1'], 411 [Int16Array, 'Int16Array', '>> 1'],
399 ['Uint16Array', '>> 1'], 412 [Uint16Array, 'Uint16Array', '>> 1'],
400 ['Int32Array', '>> 2'], 413 [Int32Array, 'Int32Array', '>> 2'],
401 ['Uint32Array', '>> 2'], 414 [Uint32Array, 'Uint32Array', '>> 2'],
402 ]; 415 ];
403 for (var i = 0; i < types.length; i++) { 416 for (var i = 0; i < types.length; i++) {
404 var code = TestInt32HeapAccess.toString(); 417 var code = TestInt32HeapAccess.toString();
405 code = code.replace('Int32Array', types[i][0]); 418 code = code.replace('Int32Array', types[i][1]);
406 code = code.replace(/>> 2/g, types[i][1]); 419 code = code.replace(/>> 2/g, types[i][2]);
420 var memory = new ArrayBuffer(1024);
421 var memory_view = new types[i][0](memory);
422 var module = _WASMEXP_.instantiateModuleFromAsm(code, null, memory);
423 module.__init__();
424 assertEquals(7, module.caller());
425 assertEquals(7, memory_view[2]);
407 assertEquals(7, _WASMEXP_.asmCompileRun(code)); 426 assertEquals(7, _WASMEXP_.asmCompileRun(code));
408 } 427 }
409 } 428 }
410 429
411 TestHeapAccessIntTypes(); 430 TestHeapAccessIntTypes();
412 431
413 432
414 function TestFloatHeapAccess(stdlib, foreign, buffer) { 433 function TestFloatHeapAccess(stdlib, foreign, buffer) {
415 "use asm"; 434 "use asm";
416 435
(...skipping 12 matching lines...) Expand all
429 i = +f64[i >> 3] == 9.0; 448 i = +f64[i >> 3] == 9.0;
430 return i|0; 449 return i|0;
431 } 450 }
432 451
433 return {caller: caller}; 452 return {caller: caller};
434 } 453 }
435 454
436 assertEquals(1, _WASMEXP_.asmCompileRun(TestFloatHeapAccess.toString())); 455 assertEquals(1, _WASMEXP_.asmCompileRun(TestFloatHeapAccess.toString()));
437 456
438 457
458 function TestFloatHeapAccessExternal() {
459 var memory = new ArrayBuffer(1024);
460 var memory_float64 = new Float64Array(memory);
461 var module = _WASMEXP_.instantiateModuleFromAsm(
462 TestFloatHeapAccess.toString(), null, memory);
463 module.__init__();
464 assertEquals(1, module.caller());
465 assertEquals(9.0, memory_float64[1]);
466 }
467
468 TestFloatHeapAccessExternal();
469
470
439 function TestConvertI32() { 471 function TestConvertI32() {
440 "use asm"; 472 "use asm";
441 473
442 function caller() { 474 function caller() {
443 var a = 1.5; 475 var a = 1.5;
444 if ((~~(a + a)) == 3) { 476 if ((~~(a + a)) == 3) {
445 return 24; 477 return 24;
446 } 478 }
447 return 0; 479 return 0;
448 } 480 }
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 function caller() { 851 function caller() {
820 return 55; 852 return 55;
821 } 853 }
822 return {alt_caller:caller}; 854 return {alt_caller:caller};
823 } 855 }
824 856
825 var module = _WASMEXP_.instantiateModuleFromAsm( 857 var module = _WASMEXP_.instantiateModuleFromAsm(
826 TestExportNameDifferentFromFunctionName.toString()); 858 TestExportNameDifferentFromFunctionName.toString());
827 module.__init__(); 859 module.__init__();
828 assertEquals(55, module.alt_caller()); 860 assertEquals(55, module.alt_caller());
OLDNEW
« no previous file with comments | « src/wasm/wasm-js.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698