| Index: src/compiler/linkage.cc
|
| diff --git a/src/compiler/linkage.cc b/src/compiler/linkage.cc
|
| index 29d4388857fdf781f8b614c9f32a37adca859b19..f117f9f076d298bd16d51c48c89e7f7298b89ba3 100644
|
| --- a/src/compiler/linkage.cc
|
| +++ b/src/compiler/linkage.cc
|
| @@ -34,7 +34,7 @@ std::ostream& operator<<(std::ostream& os, const CallDescriptor& d) {
|
| // TODO(svenpanne) Output properties etc. and be less cryptic.
|
| return os << d.kind() << ":" << d.debug_name() << ":r" << d.ReturnCount()
|
| << "j" << d.JSParameterCount() << "i" << d.InputCount() << "f"
|
| - << d.FrameStateCount();
|
| + << d.FrameStateCount() << "t" << d.IsTailCallAllowed();
|
| }
|
|
|
|
|
| @@ -141,6 +141,17 @@ bool Linkage::NeedsFrameState(Runtime::FunctionId function) {
|
| }
|
|
|
|
|
| +bool CallDescriptor::UsesOnlyRegisters() const {
|
| + for (size_t i = 0; i < InputCount(); ++i) {
|
| + if (!GetInputLocation(i).is_register()) return false;
|
| + }
|
| + for (size_t i = 0; i < ReturnCount(); ++i) {
|
| + if (!GetReturnLocation(i).is_register()) return false;
|
| + }
|
| + return true;
|
| +}
|
| +
|
| +
|
| //==============================================================================
|
| // Provide unimplemented methods on unsupported architectures, to at least link.
|
| //==============================================================================
|
|
|