summaryrefslogtreecommitdiff
path: root/deps/v8/src/deoptimizer.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/deoptimizer.h')
-rw-r--r--deps/v8/src/deoptimizer.h34
1 files changed, 11 insertions, 23 deletions
diff --git a/deps/v8/src/deoptimizer.h b/deps/v8/src/deoptimizer.h
index 471a05d9b0..fd65e83dd2 100644
--- a/deps/v8/src/deoptimizer.h
+++ b/deps/v8/src/deoptimizer.h
@@ -132,7 +132,6 @@ class OptimizedFunctionVisitor BASE_EMBEDDED {
V(kNotAHeapNumberUndefined, "not a heap number/undefined") \
V(kNotAJavaScriptObject, "not a JavaScript object") \
V(kNotASmi, "not a Smi") \
- V(kNotHeapNumber, "not heap number") \
V(kNull, "null") \
V(kOutOfBounds, "out of bounds") \
V(kOutsideOfRange, "Outside of range") \
@@ -184,15 +183,16 @@ class Deoptimizer : public Malloced {
static const char* GetDeoptReason(DeoptReason deopt_reason);
struct DeoptInfo {
- DeoptInfo(int r, const char* m, DeoptReason d)
- : raw_position(r), mnemonic(m), deopt_reason(d) {}
+ DeoptInfo(SourcePosition position, const char* m, DeoptReason d)
+ : position(position), mnemonic(m), deopt_reason(d), inlining_id(0) {}
- int raw_position;
+ SourcePosition position;
const char* mnemonic;
DeoptReason deopt_reason;
+ int inlining_id;
};
- static DeoptInfo GetDeoptInfo(Code* code, int bailout_id);
+ static DeoptInfo GetDeoptInfo(Code* code, byte* from);
struct JumpTableEntry : public ZoneObject {
inline JumpTableEntry(Address entry, const DeoptInfo& deopt_info,
@@ -322,11 +322,10 @@ class Deoptimizer : public Malloced {
static const int kNotDeoptimizationEntry = -1;
// Generators for the deoptimization entry code.
- class EntryGenerator BASE_EMBEDDED {
+ class TableEntryGenerator BASE_EMBEDDED {
public:
- EntryGenerator(MacroAssembler* masm, BailoutType type)
- : masm_(masm), type_(type) { }
- virtual ~EntryGenerator() { }
+ TableEntryGenerator(MacroAssembler* masm, BailoutType type, int count)
+ : masm_(masm), type_(type), count_(count) {}
void Generate();
@@ -335,24 +334,13 @@ class Deoptimizer : public Malloced {
BailoutType type() const { return type_; }
Isolate* isolate() const { return masm_->isolate(); }
- virtual void GeneratePrologue() { }
-
- private:
- MacroAssembler* masm_;
- Deoptimizer::BailoutType type_;
- };
-
- class TableEntryGenerator : public EntryGenerator {
- public:
- TableEntryGenerator(MacroAssembler* masm, BailoutType type, int count)
- : EntryGenerator(masm, type), count_(count) { }
-
- protected:
- virtual void GeneratePrologue();
+ void GeneratePrologue();
private:
int count() const { return count_; }
+ MacroAssembler* masm_;
+ Deoptimizer::BailoutType type_;
int count_;
};