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

Side by Side Diff: src/wasm/wasm-macro-gen.h

Issue 2440953002: [wasm] Binary 0xD: update encoding of opcodes, types, and add immediates. (Closed)
Patch Set: Update after moving copysign Created 4 years, 1 month 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
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 #ifndef V8_WASM_MACRO_GEN_H_ 5 #ifndef V8_WASM_MACRO_GEN_H_
6 #define V8_WASM_MACRO_GEN_H_ 6 #define V8_WASM_MACRO_GEN_H_
7 7
8 #include "src/wasm/wasm-opcodes.h" 8 #include "src/wasm/wasm-opcodes.h"
9 9
10 #include "src/zone/zone-containers.h" 10 #include "src/zone/zone-containers.h"
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 static_cast<byte>( \ 415 static_cast<byte>( \
416 v8::internal::wasm::WasmOpcodes::LoadStoreOpcodeOf(type, true)), \ 416 v8::internal::wasm::WasmOpcodes::LoadStoreOpcodeOf(type, true)), \
417 alignment, ZERO_OFFSET 417 alignment, ZERO_OFFSET
418 418
419 #define WASM_CALL_FUNCTION0(index) kExprCallFunction, static_cast<byte>(index) 419 #define WASM_CALL_FUNCTION0(index) kExprCallFunction, static_cast<byte>(index)
420 #define WASM_CALL_FUNCTION(index, ...) \ 420 #define WASM_CALL_FUNCTION(index, ...) \
421 __VA_ARGS__, kExprCallFunction, static_cast<byte>(index) 421 __VA_ARGS__, kExprCallFunction, static_cast<byte>(index)
422 422
423 // TODO(titzer): change usages of these macros to put func last. 423 // TODO(titzer): change usages of these macros to put func last.
424 #define WASM_CALL_INDIRECT0(index, func) \ 424 #define WASM_CALL_INDIRECT0(index, func) \
425 func, kExprCallIndirect, static_cast<byte>(index) 425 func, kExprCallIndirect, 0, static_cast<byte>(index)
426 #define WASM_CALL_INDIRECT1(index, func, a) \ 426 #define WASM_CALL_INDIRECT1(index, func, a) \
427 a, func, kExprCallIndirect, static_cast<byte>(index) 427 a, func, kExprCallIndirect, 0, static_cast<byte>(index)
428 #define WASM_CALL_INDIRECT2(index, func, a, b) \ 428 #define WASM_CALL_INDIRECT2(index, func, a, b) \
429 a, b, func, kExprCallIndirect, static_cast<byte>(index) 429 a, b, func, kExprCallIndirect, 0, static_cast<byte>(index)
430 #define WASM_CALL_INDIRECT3(index, func, a, b, c) \ 430 #define WASM_CALL_INDIRECT3(index, func, a, b, c) \
431 a, b, c, func, kExprCallIndirect, static_cast<byte>(index) 431 a, b, c, func, kExprCallIndirect, 0, static_cast<byte>(index)
432 #define WASM_CALL_INDIRECT4(index, func, a, b, c, d) \ 432 #define WASM_CALL_INDIRECT4(index, func, a, b, c, d) \
433 a, b, c, d, func, kExprCallIndirect, static_cast<byte>(index) 433 a, b, c, d, func, kExprCallIndirect, 0, static_cast<byte>(index)
434 #define WASM_CALL_INDIRECT5(index, func, a, b, c, d, e) \ 434 #define WASM_CALL_INDIRECT5(index, func, a, b, c, d, e) \
435 a, b, c, d, e, func, kExprCallIndirect, static_cast<byte>(index) 435 a, b, c, d, e, func, kExprCallIndirect, 0, static_cast<byte>(index)
436 #define WASM_CALL_INDIRECTN(arity, index, func, ...) \ 436 #define WASM_CALL_INDIRECTN(arity, index, func, ...) \
437 __VA_ARGS__, func, kExprCallIndirect, static_cast<byte>(index) 437 __VA_ARGS__, func, kExprCallIndirect, 0, static_cast<byte>(index)
438 438
439 #define WASM_NOT(x) x, kExprI32Eqz 439 #define WASM_NOT(x) x, kExprI32Eqz
440 #define WASM_SEQ(...) __VA_ARGS__ 440 #define WASM_SEQ(...) __VA_ARGS__
441 441
442 //------------------------------------------------------------------------------ 442 //------------------------------------------------------------------------------
443 // Constructs that are composed of multiple bytecodes. 443 // Constructs that are composed of multiple bytecodes.
444 //------------------------------------------------------------------------------ 444 //------------------------------------------------------------------------------
445 #define WASM_WHILE(x, y) \ 445 #define WASM_WHILE(x, y) \
446 kExprLoop, kLocalVoid, x, kExprIf, kLocalVoid, y, kExprBr, DEPTH_1, \ 446 kExprLoop, kLocalVoid, x, kExprIf, kLocalVoid, y, kExprBr, DEPTH_1, \
447 kExprEnd, kExprEnd 447 kExprEnd, kExprEnd
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 #define WASM_F64_SCONVERT_I64(x) x, kExprF64SConvertI64 598 #define WASM_F64_SCONVERT_I64(x) x, kExprF64SConvertI64
599 #define WASM_F64_UCONVERT_I64(x) x, kExprF64UConvertI64 599 #define WASM_F64_UCONVERT_I64(x) x, kExprF64UConvertI64
600 #define WASM_F64_CONVERT_F32(x) x, kExprF64ConvertF32 600 #define WASM_F64_CONVERT_F32(x) x, kExprF64ConvertF32
601 #define WASM_F64_REINTERPRET_I64(x) x, kExprF64ReinterpretI64 601 #define WASM_F64_REINTERPRET_I64(x) x, kExprF64ReinterpretI64
602 #define WASM_I32_REINTERPRET_F32(x) x, kExprI32ReinterpretF32 602 #define WASM_I32_REINTERPRET_F32(x) x, kExprI32ReinterpretF32
603 #define WASM_I64_REINTERPRET_F64(x) x, kExprI64ReinterpretF64 603 #define WASM_I64_REINTERPRET_F64(x) x, kExprI64ReinterpretF64
604 604
605 //------------------------------------------------------------------------------ 605 //------------------------------------------------------------------------------
606 // Memory Operations. 606 // Memory Operations.
607 //------------------------------------------------------------------------------ 607 //------------------------------------------------------------------------------
608 #define WASM_GROW_MEMORY(x) x, kExprGrowMemory 608 #define WASM_GROW_MEMORY(x) x, kExprGrowMemory, 0
609 #define WASM_MEMORY_SIZE kExprMemorySize 609 #define WASM_MEMORY_SIZE kExprMemorySize, 0
610 610
611 //------------------------------------------------------------------------------ 611 //------------------------------------------------------------------------------
612 // Simd Operations. 612 // Simd Operations.
613 //------------------------------------------------------------------------------ 613 //------------------------------------------------------------------------------
614 #define WASM_SIMD_I32x4_SPLAT(x) x, kSimdPrefix, kExprI32x4Splat & 0xff 614 #define WASM_SIMD_I32x4_SPLAT(x) x, kSimdPrefix, kExprI32x4Splat & 0xff
615 #define WASM_SIMD_I32x4_EXTRACT_LANE(lane, x) \ 615 #define WASM_SIMD_I32x4_EXTRACT_LANE(lane, x) \
616 x, kSimdPrefix, kExprI32x4ExtractLane & 0xff, static_cast<byte>(lane) 616 x, kSimdPrefix, kExprI32x4ExtractLane & 0xff, static_cast<byte>(lane)
617 #define WASM_SIMD_I32x4_ADD(x, y) x, y, kSimdPrefix, kExprI32x4Add & 0xff 617 #define WASM_SIMD_I32x4_ADD(x, y) x, y, kSimdPrefix, kExprI32x4Add & 0xff
618 #define WASM_SIMD_F32x4_SPLAT(x) x, kSimdPrefix, kExprF32x4Splat & 0xff 618 #define WASM_SIMD_F32x4_SPLAT(x) x, kSimdPrefix, kExprF32x4Splat & 0xff
619 #define WASM_SIMD_F32x4_EXTRACT_LANE(lane, x) \ 619 #define WASM_SIMD_F32x4_EXTRACT_LANE(lane, x) \
(...skipping 22 matching lines...) Expand all
642 #define WASM_BRV(depth, val) val, kExprBr, static_cast<byte>(depth) 642 #define WASM_BRV(depth, val) val, kExprBr, static_cast<byte>(depth)
643 #define WASM_BRV_IF(depth, val, cond) \ 643 #define WASM_BRV_IF(depth, val, cond) \
644 val, cond, kExprBrIf, static_cast<byte>(depth) 644 val, cond, kExprBrIf, static_cast<byte>(depth)
645 #define WASM_BRV_IFD(depth, val, cond) \ 645 #define WASM_BRV_IFD(depth, val, cond) \
646 val, cond, kExprBrIf, static_cast<byte>(depth), kExprDrop 646 val, cond, kExprBrIf, static_cast<byte>(depth), kExprDrop
647 #define WASM_IFB(cond, ...) cond, kExprIf, kLocalVoid, __VA_ARGS__, kExprEnd 647 #define WASM_IFB(cond, ...) cond, kExprIf, kLocalVoid, __VA_ARGS__, kExprEnd
648 #define WASM_BR_TABLEV(val, key, count, ...) \ 648 #define WASM_BR_TABLEV(val, key, count, ...) \
649 val, key, kExprBrTable, U32V_1(count), __VA_ARGS__ 649 val, key, kExprBrTable, U32V_1(count), __VA_ARGS__
650 650
651 #endif // V8_WASM_MACRO_GEN_H_ 651 #endif // V8_WASM_MACRO_GEN_H_
OLDNEW
« no previous file with comments | « src/wasm/wasm-interpreter.cc ('k') | src/wasm/wasm-module.h » ('j') | src/wasm/wasm-opcodes.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698