Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 724c4d0f593782250aaa845c6ec38108ddd4a2b3..eafa22576c880ad5db676b2b687e63fc27bb6dd0 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -4907,6 +4907,13 @@ class Code: public HeapObject { |
FAST |
}; |
+ // Types of wasm functions. |
+ enum WasmFunctionType { |
+ WASM_INNER_FUNCTION, |
+ WASM_TO_JS, |
+ JS_TO_WASM, |
+ }; |
+ |
static const int kPrologueOffsetNotSet = -1; |
#ifdef ENABLE_DISASSEMBLER |
@@ -4984,6 +4991,8 @@ class Code: public HeapObject { |
inline StubType type(); // Only valid for monomorphic IC stubs. |
+ inline WasmFunctionType wasm_function_type(); // Only valid for wasm. |
+ |
// Testers for IC stub kinds. |
inline bool is_inline_cache_stub(); |
inline bool is_debug_stub(); |
@@ -5140,7 +5149,11 @@ class Code: public HeapObject { |
static inline Flags ComputeFlags( |
Kind kind, InlineCacheState ic_state = UNINITIALIZED, |
ExtraICState extra_ic_state = kNoExtraICState, StubType type = NORMAL, |
- CacheHolderFlag holder = kCacheOnReceiver); |
+ CacheHolderFlag holder = kCacheOnReceiver, |
+ WasmFunctionType = WASM_INNER_FUNCTION); |
+ |
+ static inline Flags ComputeWasmFlags(Kind kind, |
+ WasmFunctionType = WASM_INNER_FUNCTION); |
static inline Flags ComputeMonomorphicFlags( |
Kind kind, ExtraICState extra_ic_state = kNoExtraICState, |
@@ -5152,6 +5165,7 @@ class Code: public HeapObject { |
static inline InlineCacheState ExtractICStateFromFlags(Flags flags); |
static inline StubType ExtractTypeFromFlags(Flags flags); |
+ static inline WasmFunctionType ExtractWasmFunctionTypeFromFlags(Flags flags); |
static inline CacheHolderFlag ExtractCacheHolderFromFlags(Flags flags); |
static inline Kind ExtractKindFromFlags(Flags flags); |
static inline ExtraICState ExtractExtraICStateFromFlags(Flags flags); |
@@ -5323,8 +5337,10 @@ class Code: public HeapObject { |
class TypeField : public BitField<StubType, 3, 1> {}; |
class CacheHolderField : public BitField<CacheHolderFlag, 4, 2> {}; |
class KindField : public BitField<Kind, 6, 5> {}; |
- class ExtraICStateField: public BitField<ExtraICState, 11, |
- PlatformSmiTagging::kSmiValueSize - 11 + 1> {}; // NOLINT |
+ class WasmFunctionTypeField : public BitField<WasmFunctionType, 11, 2> {}; |
+ class ExtraICStateField |
+ : public BitField<ExtraICState, 13, PlatformSmiTagging::kSmiValueSize - |
+ 13 + 1> {}; // NOLINT |
// KindSpecificFlags1 layout (STUB and OPTIMIZED_FUNCTION) |
static const int kStackSlotsFirstBit = 0; |