| Index: src/compiler/instruction-selector-impl.h
|
| diff --git a/src/compiler/instruction-selector-impl.h b/src/compiler/instruction-selector-impl.h
|
| index bdcd952b5f703a60aa18a4813325dd2b24ae0f91..adf8492efaba0a1f40586031349e04deb82134b1 100644
|
| --- a/src/compiler/instruction-selector-impl.h
|
| +++ b/src/compiler/instruction-selector-impl.h
|
| @@ -188,13 +188,22 @@ class OperandGenerator {
|
| UnallocatedOperand* ToUnallocatedOperand(LinkageLocation location,
|
| MachineType type) {
|
| if (location.location_ == LinkageLocation::ANY_REGISTER) {
|
| + // any machine register.
|
| return new (zone())
|
| UnallocatedOperand(UnallocatedOperand::MUST_HAVE_REGISTER);
|
| }
|
| if (location.location_ < 0) {
|
| + // a location on the caller frame.
|
| return new (zone()) UnallocatedOperand(UnallocatedOperand::FIXED_SLOT,
|
| location.location_);
|
| }
|
| + if (location.location_ > LinkageLocation::ANY_REGISTER) {
|
| + // a spill location on this (callee) frame.
|
| + return new (zone()) UnallocatedOperand(
|
| + UnallocatedOperand::FIXED_SLOT,
|
| + location.location_ - LinkageLocation::ANY_REGISTER - 1);
|
| + }
|
| + // a fixed register.
|
| if (RepresentationOf(type) == kRepFloat64) {
|
| return new (zone()) UnallocatedOperand(
|
| UnallocatedOperand::FIXED_DOUBLE_REGISTER, location.location_);
|
|
|