Chromium Code Reviews| Index: src/wasm/wasm-opcodes.h |
| diff --git a/src/wasm/wasm-opcodes.h b/src/wasm/wasm-opcodes.h |
| index abd646490c8b2a680f1a65e63ad91af617b7b793..03827b20351b2f7b9208cce2de9de3604634321f 100644 |
| --- a/src/wasm/wasm-opcodes.h |
| +++ b/src/wasm/wasm-opcodes.h |
| @@ -22,6 +22,9 @@ enum LocalTypeCode { |
| kLocalS128 = 5 |
| }; |
| +// Type code for multi-value block types. |
| +static const uint8_t kMultivalBlock = 0x41; |
|
bradnelson
2016/09/23 11:36:01
That seems fairly arbitrary :-)
titzer
2016/09/23 12:07:30
Agree. It's a prototype, so we don't have to stand
|
| + |
| // We reuse the internal machine type to represent WebAssembly AST types. |
| // A typedef improves readability without adding a whole new type system. |
| typedef MachineRepresentation LocalType; |
| @@ -44,7 +47,7 @@ const WasmCodePosition kNoCodePosition = -1; |
| // Control expressions and blocks. |
| #define FOREACH_CONTROL_OPCODE(V) \ |
| - V(Nop, 0x00, _) \ |
| + V(Unreachable, 0x00, _) \ |
| V(Block, 0x01, _) \ |
| V(Loop, 0x02, _) \ |
| V(If, 0x03, _) \ |
| @@ -54,7 +57,7 @@ const WasmCodePosition kNoCodePosition = -1; |
| V(BrIf, 0x07, _) \ |
| V(BrTable, 0x08, _) \ |
| V(Return, 0x09, _) \ |
| - V(Unreachable, 0x0a, _) \ |
| + V(Nop, 0x0a, _) \ |
| V(Throw, 0xfa, _) \ |
| V(Try, 0xfb, _) \ |
| V(Catch, 0xfe, _) \ |
| @@ -68,9 +71,10 @@ const WasmCodePosition kNoCodePosition = -1; |
| V(F32Const, 0x13, _) \ |
| V(GetLocal, 0x14, _) \ |
| V(SetLocal, 0x15, _) \ |
| + V(TeeLocal, 0x19, _) \ |
| + V(Drop, 0x0b, _) \ |
| V(CallFunction, 0x16, _) \ |
| V(CallIndirect, 0x17, _) \ |
| - V(CallImport, 0x18, _) \ |
| V(I8Const, 0xcb, _) \ |
| V(GetGlobal, 0xbb, _) \ |
| V(SetGlobal, 0xbc, _) |
| @@ -497,6 +501,8 @@ class WasmOpcodes { |
| return 1 << ElementSizeLog2Of(type.representation()); |
| } |
| + static byte MemSize(LocalType type) { return 1 << ElementSizeLog2Of(type); } |
| + |
| static LocalTypeCode LocalTypeCodeFor(LocalType type) { |
| switch (type) { |
| case kAstI32: |