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

Unified Diff: src/compiler/linkage.h

Issue 492203002: Initial support for debugger frame state in Turbofan. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Another attempt to fix Win64 Created 6 years, 4 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
Index: src/compiler/linkage.h
diff --git a/src/compiler/linkage.h b/src/compiler/linkage.h
index 9fe02183ec4bdc8448415e2793f75d3d9c56652b..5e887b7d8efb0fe6934fb8ed0b87fa89b342fa02 100644
--- a/src/compiler/linkage.h
+++ b/src/compiler/linkage.h
@@ -43,7 +43,12 @@ class CallDescriptor : public ZoneObject {
// or an address--all of which require different machine sequences to call.
enum Kind { kCallCodeObject, kCallJSFunction, kCallAddress };
- enum DeoptimizationSupport { kCanDeoptimize, kCannotDeoptimize };
+ // TODO(jarin) kLazyDeoptimization and kNeedsFrameState should be unified.
+ enum DeoptimizationSupport {
+ kNoDeoptimization = 0,
+ kLazyDeoptimization = 1,
+ kNeedsFrameState = 2
+ };
CallDescriptor(Kind kind, int8_t return_count, int16_t parameter_count,
int16_t input_count, LinkageLocation* locations,
@@ -74,8 +79,18 @@ class CallDescriptor : public ZoneObject {
int InputCount() const { return input_count_; }
+ int FrameStateCount() const { return NeedsFrameState() ? 1 : 0; }
+
bool CanLazilyDeoptimize() const {
- return deoptimization_support_ == kCanDeoptimize;
+ return (deoptimization_support() & kLazyDeoptimization) != 0;
+ }
+
+ bool NeedsFrameState() const {
+ return (deoptimization_support() & kNeedsFrameState) != 0;
+ }
+
+ DeoptimizationSupport deoptimization_support() const {
+ return deoptimization_support_;
}
LinkageLocation GetReturnLocation(int index) {
@@ -141,7 +156,7 @@ class Linkage : public ZoneObject {
Runtime::FunctionId function, int parameter_count,
Operator::Property properties,
CallDescriptor::DeoptimizationSupport can_deoptimize =
- CallDescriptor::kCannotDeoptimize);
+ CallDescriptor::kNoDeoptimization);
static CallDescriptor* GetRuntimeCallDescriptor(
Runtime::FunctionId function, int parameter_count,
Operator::Property properties,
@@ -150,7 +165,7 @@ class Linkage : public ZoneObject {
CallDescriptor* GetStubCallDescriptor(
CodeStubInterfaceDescriptor* descriptor, int stack_parameter_count = 0,
CallDescriptor::DeoptimizationSupport can_deoptimize =
- CallDescriptor::kCannotDeoptimize);
+ CallDescriptor::kNoDeoptimization);
static CallDescriptor* GetStubCallDescriptor(
CodeStubInterfaceDescriptor* descriptor, int stack_parameter_count,
CallDescriptor::DeoptimizationSupport can_deoptimize, Zone* zone);

Powered by Google App Engine
This is Rietveld 408576698