diff options
Diffstat (limited to 'deps/v8/src/deoptimizer.h')
-rw-r--r-- | deps/v8/src/deoptimizer.h | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/deps/v8/src/deoptimizer.h b/deps/v8/src/deoptimizer.h index d981a86253..0c5254e773 100644 --- a/deps/v8/src/deoptimizer.h +++ b/deps/v8/src/deoptimizer.h @@ -53,6 +53,7 @@ class TranslatedValue { kInvalid, kTagged, kInt32, + kInt64, kUInt32, kBoolBit, kFloat, @@ -88,6 +89,7 @@ class TranslatedValue { static TranslatedValue NewFloat(TranslatedState* container, Float32 value); static TranslatedValue NewDouble(TranslatedState* container, Float64 value); static TranslatedValue NewInt32(TranslatedState* container, int32_t value); + static TranslatedValue NewInt64(TranslatedState* container, int64_t value); static TranslatedValue NewUInt32(TranslatedState* container, uint32_t value); static TranslatedValue NewBool(TranslatedState* container, uint32_t value); static TranslatedValue NewTagged(TranslatedState* container, Object* literal); @@ -128,6 +130,8 @@ class TranslatedValue { uint32_t uint32_value_; // kind is kInt32. int32_t int32_value_; + // kind is kInt64. + int64_t int64_value_; // kind is kFloat Float32 float_value_; // kind is kDouble @@ -139,6 +143,7 @@ class TranslatedValue { // Checked accessors for the union members. Object* raw_literal() const; int32_t int32_value() const; + int64_t int64_value() const; uint32_t uint32_value() const; Float32 float_value() const; Float64 double_value() const; @@ -284,7 +289,7 @@ class TranslatedFrame { class TranslatedState { public: - TranslatedState() {} + TranslatedState() = default; explicit TranslatedState(const JavaScriptFrame* frame); void Prepare(Address stack_frame_pointer); @@ -368,6 +373,7 @@ class TranslatedState { Handle<Object> GetValueAndAdvance(TranslatedFrame* frame, int* value_index); static uint32_t GetUInt32Slot(Address fp, int slot_index); + static uint64_t GetUInt64Slot(Address fp, int slot_index); static Float32 GetFloatSlot(Address fp, int slot_index); static Float64 GetDoubleSlot(Address fp, int slot_index); @@ -386,10 +392,9 @@ class TranslatedState { FeedbackSlot feedback_slot_; }; - -class OptimizedFunctionVisitor BASE_EMBEDDED { +class OptimizedFunctionVisitor { public: - virtual ~OptimizedFunctionVisitor() {} + virtual ~OptimizedFunctionVisitor() = default; virtual void VisitFunction(JSFunction* function) = 0; }; @@ -501,7 +506,7 @@ class Deoptimizer : public Malloced { static const int kNotDeoptimizationEntry = -1; // Generators for the deoptimization entry code. - class TableEntryGenerator BASE_EMBEDDED { + class TableEntryGenerator { public: TableEntryGenerator(MacroAssembler* masm, DeoptimizeKind kind, int count) : masm_(masm), deopt_kind_(kind), count_(count) {} @@ -864,8 +869,7 @@ class DeoptimizerData { DISALLOW_COPY_AND_ASSIGN(DeoptimizerData); }; - -class TranslationBuffer BASE_EMBEDDED { +class TranslationBuffer { public: explicit TranslationBuffer(Zone* zone) : contents_(zone) {} @@ -878,8 +882,7 @@ class TranslationBuffer BASE_EMBEDDED { ZoneChunkList<uint8_t> contents_; }; - -class TranslationIterator BASE_EMBEDDED { +class TranslationIterator { public: TranslationIterator(ByteArray* buffer, int index); @@ -910,12 +913,14 @@ class TranslationIterator BASE_EMBEDDED { V(CAPTURED_OBJECT) \ V(REGISTER) \ V(INT32_REGISTER) \ + V(INT64_REGISTER) \ V(UINT32_REGISTER) \ V(BOOL_REGISTER) \ V(FLOAT_REGISTER) \ V(DOUBLE_REGISTER) \ V(STACK_SLOT) \ V(INT32_STACK_SLOT) \ + V(INT64_STACK_SLOT) \ V(UINT32_STACK_SLOT) \ V(BOOL_STACK_SLOT) \ V(FLOAT_STACK_SLOT) \ @@ -923,7 +928,7 @@ class TranslationIterator BASE_EMBEDDED { V(LITERAL) \ V(UPDATE_FEEDBACK) -class Translation BASE_EMBEDDED { +class Translation { public: #define DECLARE_TRANSLATION_OPCODE_ENUM(item) item, enum Opcode { @@ -963,12 +968,14 @@ class Translation BASE_EMBEDDED { void DuplicateObject(int object_index); void StoreRegister(Register reg); void StoreInt32Register(Register reg); + void StoreInt64Register(Register reg); void StoreUint32Register(Register reg); void StoreBoolRegister(Register reg); void StoreFloatRegister(FloatRegister reg); void StoreDoubleRegister(DoubleRegister reg); void StoreStackSlot(int index); void StoreInt32StackSlot(int index); + void StoreInt64StackSlot(int index); void StoreUint32StackSlot(int index); void StoreBoolStackSlot(int index); void StoreFloatStackSlot(int index); |