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

Side by Side Diff: src/wasm/wasm-opcodes.h

Issue 2670673002: [wasm] Implement polymorphic checking, matching the reference interpreter. (Closed)
Patch Set: Fix test-run-simd Created 3 years, 10 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/function-body-decoder.cc ('k') | test/cctest/wasm/test-run-wasm.cc » ('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 #ifndef V8_WASM_OPCODES_H_ 5 #ifndef V8_WASM_OPCODES_H_
6 #define V8_WASM_OPCODES_H_ 6 #define V8_WASM_OPCODES_H_
7 7
8 #include "src/globals.h" 8 #include "src/globals.h"
9 #include "src/machine-type.h" 9 #include "src/machine-type.h"
10 #include "src/runtime/runtime.h" 10 #include "src/runtime/runtime.h"
(...skipping 18 matching lines...) Expand all
29 29
30 // We reuse the internal machine type to represent WebAssembly types. 30 // We reuse the internal machine type to represent WebAssembly types.
31 // A typedef improves readability without adding a whole new type system. 31 // A typedef improves readability without adding a whole new type system.
32 typedef MachineRepresentation ValueType; 32 typedef MachineRepresentation ValueType;
33 const ValueType kWasmStmt = MachineRepresentation::kNone; 33 const ValueType kWasmStmt = MachineRepresentation::kNone;
34 const ValueType kWasmI32 = MachineRepresentation::kWord32; 34 const ValueType kWasmI32 = MachineRepresentation::kWord32;
35 const ValueType kWasmI64 = MachineRepresentation::kWord64; 35 const ValueType kWasmI64 = MachineRepresentation::kWord64;
36 const ValueType kWasmF32 = MachineRepresentation::kFloat32; 36 const ValueType kWasmF32 = MachineRepresentation::kFloat32;
37 const ValueType kWasmF64 = MachineRepresentation::kFloat64; 37 const ValueType kWasmF64 = MachineRepresentation::kFloat64;
38 const ValueType kWasmS128 = MachineRepresentation::kSimd128; 38 const ValueType kWasmS128 = MachineRepresentation::kSimd128;
39 // We use kTagged here because kNone is already used by kWasmStmt. 39 const ValueType kWasmVar = MachineRepresentation::kTagged;
40 const ValueType kWasmEnd = MachineRepresentation::kTagged;
41 40
42 typedef Signature<ValueType> FunctionSig; 41 typedef Signature<ValueType> FunctionSig;
43 std::ostream& operator<<(std::ostream& os, const FunctionSig& function); 42 std::ostream& operator<<(std::ostream& os, const FunctionSig& function);
44 43
45 typedef Vector<const char> WasmName; 44 typedef Vector<const char> WasmName;
46 45
47 typedef int WasmCodePosition; 46 typedef int WasmCodePosition;
48 const WasmCodePosition kNoCodePosition = -1; 47 const WasmCodePosition kNoCodePosition = -1;
49 48
50 // Control expressions and blocks. 49 // Control expressions and blocks.
(...skipping 591 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 case kWasmI64: 641 case kWasmI64:
643 return 'l'; 642 return 'l';
644 case kWasmF32: 643 case kWasmF32:
645 return 'f'; 644 return 'f';
646 case kWasmF64: 645 case kWasmF64:
647 return 'd'; 646 return 'd';
648 case kWasmS128: 647 case kWasmS128:
649 return 's'; 648 return 's';
650 case kWasmStmt: 649 case kWasmStmt:
651 return 'v'; 650 return 'v';
652 case kWasmEnd: 651 case kWasmVar:
653 return 'x'; 652 return '*';
654 default: 653 default:
655 UNREACHABLE();
656 return '?'; 654 return '?';
657 } 655 }
658 } 656 }
659 657
660 static const char* TypeName(ValueType type) { 658 static const char* TypeName(ValueType type) {
661 switch (type) { 659 switch (type) {
662 case kWasmI32: 660 case kWasmI32:
663 return "i32"; 661 return "i32";
664 case kWasmI64: 662 case kWasmI64:
665 return "i64"; 663 return "i64";
666 case kWasmF32: 664 case kWasmF32:
667 return "f32"; 665 return "f32";
668 case kWasmF64: 666 case kWasmF64:
669 return "f64"; 667 return "f64";
670 case kWasmS128: 668 case kWasmS128:
671 return "s128"; 669 return "s128";
672 case kWasmStmt: 670 case kWasmStmt:
673 return "<stmt>"; 671 return "<stmt>";
674 case kWasmEnd: 672 case kWasmVar:
675 return "<end>"; 673 return "<var>";
676 default: 674 default:
677 return "<unknown>"; 675 return "<unknown>";
678 } 676 }
679 } 677 }
680 }; 678 };
681 } // namespace wasm 679 } // namespace wasm
682 } // namespace internal 680 } // namespace internal
683 } // namespace v8 681 } // namespace v8
684 682
685 #endif // V8_WASM_OPCODES_H_ 683 #endif // V8_WASM_OPCODES_H_
OLDNEW
« no previous file with comments | « src/wasm/function-body-decoder.cc ('k') | test/cctest/wasm/test-run-wasm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698