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

Unified Diff: src/compiler/js-operator.h

Issue 1259203002: [turbofan] Implement tail calls with differing stack parameter counts (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix bugs in frameless tail calls Created 5 years, 5 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/js-operator.h
diff --git a/src/compiler/js-operator.h b/src/compiler/js-operator.h
index 26d7e6236548cd82a846e0d04e61b838a74e575c..f3f0ca6fdfbd1b0655c6fb99148506e9a0fa4a16 100644
--- a/src/compiler/js-operator.h
+++ b/src/compiler/js-operator.h
@@ -88,7 +88,7 @@ class CallFunctionParameters final {
const uint32_t bit_field_;
const VectorSlotPair feedback_;
- bool tail_call_mode_;
+ TailCallMode tail_call_mode_;
};
size_t hash_value(CallFunctionParameters const&);
@@ -102,15 +102,17 @@ const CallFunctionParameters& CallFunctionParametersOf(const Operator* op);
// parameter by JSCallRuntime operators.
class CallRuntimeParameters final {
public:
- CallRuntimeParameters(Runtime::FunctionId id, size_t arity)
- : id_(id), arity_(arity) {}
+ CallRuntimeParameters(Runtime::FunctionId id, size_t arity, TailCallMode mode)
+ : id_(id), arity_(arity), mode_(mode) {}
Runtime::FunctionId id() const { return id_; }
size_t arity() const { return arity_; }
+ TailCallMode mode() const { return mode_; }
private:
const Runtime::FunctionId id_;
const size_t arity_;
+ const TailCallMode mode_;
};
bool operator==(CallRuntimeParameters const&, CallRuntimeParameters const&);
@@ -482,7 +484,8 @@ class JSOperatorBuilder final : public ZoneObject {
size_t arity, CallFunctionFlags flags, LanguageMode language_mode,
VectorSlotPair const& feedback = VectorSlotPair(),
TailCallMode tail_call_mode = NO_TAIL_CALLS);
- const Operator* CallRuntime(Runtime::FunctionId id, size_t arity);
+ const Operator* CallRuntime(Runtime::FunctionId id, size_t arity,
+ TailCallMode mode = ALLOW_TAIL_CALLS);
const Operator* CallConstruct(int arguments);

Powered by Google App Engine
This is Rietveld 408576698