summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/instruction.h
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2017-05-02 10:50:00 +0200
committerMichaël Zasso <targos@protonmail.com>2017-05-06 20:02:35 +0200
commit60d1aac8d225e844e68ae48e8f3d58802e635fbe (patch)
tree922f347dd054db18d88666fad7181e5a777f4022 /deps/v8/src/compiler/instruction.h
parent73d9c0f903ae371cd5011af64c3a6f69a1bda978 (diff)
downloadnode-new-60d1aac8d225e844e68ae48e8f3d58802e635fbe.tar.gz
deps: update V8 to 5.8.283.38
PR-URL: https://github.com/nodejs/node/pull/12784 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Diffstat (limited to 'deps/v8/src/compiler/instruction.h')
-rw-r--r--deps/v8/src/compiler/instruction.h27
1 files changed, 20 insertions, 7 deletions
diff --git a/deps/v8/src/compiler/instruction.h b/deps/v8/src/compiler/instruction.h
index d62ffc43bd..ee7865dec0 100644
--- a/deps/v8/src/compiler/instruction.h
+++ b/deps/v8/src/compiler/instruction.h
@@ -484,6 +484,9 @@ class LocationOperand : public InstructionOperand {
case MachineRepresentation::kFloat32:
case MachineRepresentation::kFloat64:
case MachineRepresentation::kSimd128:
+ case MachineRepresentation::kSimd1x4:
+ case MachineRepresentation::kSimd1x8:
+ case MachineRepresentation::kSimd1x16:
case MachineRepresentation::kTaggedSigned:
case MachineRepresentation::kTaggedPointer:
case MachineRepresentation::kTagged:
@@ -1122,6 +1125,7 @@ std::ostream& operator<<(std::ostream& os, const Constant& constant);
class FrameStateDescriptor;
enum class StateValueKind : uint8_t {
+ kArguments,
kPlain,
kOptimizedOut,
kNested,
@@ -1135,6 +1139,10 @@ class StateValueDescriptor {
type_(MachineType::AnyTagged()),
id_(0) {}
+ static StateValueDescriptor Arguments() {
+ return StateValueDescriptor(StateValueKind::kArguments,
+ MachineType::AnyTagged(), 0);
+ }
static StateValueDescriptor Plain(MachineType type) {
return StateValueDescriptor(StateValueKind::kPlain, type, 0);
}
@@ -1151,10 +1159,11 @@ class StateValueDescriptor {
MachineType::AnyTagged(), id);
}
- int IsPlain() { return kind_ == StateValueKind::kPlain; }
- int IsOptimizedOut() { return kind_ == StateValueKind::kOptimizedOut; }
- int IsNested() { return kind_ == StateValueKind::kNested; }
- int IsDuplicate() { return kind_ == StateValueKind::kDuplicate; }
+ bool IsArguments() const { return kind_ == StateValueKind::kArguments; }
+ bool IsPlain() const { return kind_ == StateValueKind::kPlain; }
+ bool IsOptimizedOut() const { return kind_ == StateValueKind::kOptimizedOut; }
+ bool IsNested() const { return kind_ == StateValueKind::kNested; }
+ bool IsDuplicate() const { return kind_ == StateValueKind::kDuplicate; }
MachineType type() const { return type_; }
size_t id() const { return id_; }
@@ -1223,6 +1232,7 @@ class StateValueList {
nested_.push_back(nested);
return nested;
}
+ void PushArguments() { fields_.push_back(StateValueDescriptor::Arguments()); }
void PushDuplicate(size_t id) {
fields_.push_back(StateValueDescriptor::Duplicate(id));
}
@@ -1289,14 +1299,17 @@ class FrameStateDescriptor : public ZoneObject {
class DeoptimizationEntry final {
public:
DeoptimizationEntry() {}
- DeoptimizationEntry(FrameStateDescriptor* descriptor, DeoptimizeReason reason)
- : descriptor_(descriptor), reason_(reason) {}
+ DeoptimizationEntry(FrameStateDescriptor* descriptor, DeoptimizeKind kind,
+ DeoptimizeReason reason)
+ : descriptor_(descriptor), kind_(kind), reason_(reason) {}
FrameStateDescriptor* descriptor() const { return descriptor_; }
+ DeoptimizeKind kind() const { return kind_; }
DeoptimizeReason reason() const { return reason_; }
private:
FrameStateDescriptor* descriptor_ = nullptr;
+ DeoptimizeKind kind_ = DeoptimizeKind::kEager;
DeoptimizeReason reason_ = DeoptimizeReason::kNoReason;
};
@@ -1556,7 +1569,7 @@ class V8_EXPORT_PRIVATE InstructionSequence final
}
int AddDeoptimizationEntry(FrameStateDescriptor* descriptor,
- DeoptimizeReason reason);
+ DeoptimizeKind kind, DeoptimizeReason reason);
DeoptimizationEntry const& GetDeoptimizationEntry(int deoptimization_id);
int GetDeoptimizationEntryCount() const {
return static_cast<int>(deoptimization_entries_.size());