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

Unified Diff: src/objects.h

Issue 1764603003: Handle stack frames differently inside and on the boundary of wasm. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix Created 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/frames-inl.h ('k') | src/objects-inl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 {
titzer 2016/03/03 22:48:21 After having a look at this, I think it's actually
bradn 2016/03/03 23:17:29 Done. And it has the added benefit of rendering t
+ 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;
« no previous file with comments | « src/frames-inl.h ('k') | src/objects-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698