Merge V8 5.2.361.47 DO NOT MERGE
https://chromium.googlesource.com/v8/v8/+/5.2.361.47
FPIIM-449
Change-Id: Ibec421b85a9b88cb3a432ada642e469fe7e78346
(cherry picked from commit bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8)
diff --git a/src/deoptimizer.h b/src/deoptimizer.h
index 21ca84e..1d413e6 100644
--- a/src/deoptimizer.h
+++ b/src/deoptimizer.h
@@ -402,6 +402,22 @@
public:
enum BailoutType { EAGER, LAZY, SOFT, kLastBailoutType = SOFT };
+ enum class BailoutState {
+ NO_REGISTERS,
+ TOS_REGISTER,
+ };
+
+ static const char* BailoutStateToString(BailoutState state) {
+ switch (state) {
+ case BailoutState::NO_REGISTERS:
+ return "NO_REGISTERS";
+ case BailoutState::TOS_REGISTER:
+ return "TOS_REGISTER";
+ }
+ UNREACHABLE();
+ return nullptr;
+ }
+
#define DEOPT_MESSAGES_CONSTANTS(C, T) C,
enum DeoptReason {
DEOPT_MESSAGES_LIST(DEOPT_MESSAGES_CONSTANTS) kLastDeoptReason
@@ -410,17 +426,21 @@
static const char* GetDeoptReason(DeoptReason deopt_reason);
struct DeoptInfo {
- DeoptInfo(SourcePosition position, const char* m, DeoptReason d)
- : position(position), mnemonic(m), deopt_reason(d), inlining_id(0) {}
+ DeoptInfo(SourcePosition position, DeoptReason deopt_reason, int deopt_id)
+ : position(position), deopt_reason(deopt_reason), deopt_id(deopt_id) {}
SourcePosition position;
- const char* mnemonic;
DeoptReason deopt_reason;
- int inlining_id;
+ int deopt_id;
+
+ static const int kNoDeoptId = -1;
};
static DeoptInfo GetDeoptInfo(Code* code, byte* from);
+ static int ComputeSourcePosition(SharedFunctionInfo* shared,
+ BailoutId node_id);
+
struct JumpTableEntry : public ZoneObject {
inline JumpTableEntry(Address entry, const DeoptInfo& deopt_info,
Deoptimizer::BailoutType type, bool frame)