| Index: src/a64/deoptimizer-a64.cc
|
| diff --git a/src/a64/deoptimizer-a64.cc b/src/a64/deoptimizer-a64.cc
|
| index 660feb2394351f95d40eae6e39ec7d745a930f70..2ce81ee724200f768016f2fa12b28a53a4e3ab4a 100644
|
| --- a/src/a64/deoptimizer-a64.cc
|
| +++ b/src/a64/deoptimizer-a64.cc
|
| @@ -335,6 +335,9 @@ const int Deoptimizer::table_entry_size_ = 2 * kInstructionSize;
|
|
|
|
|
| void Deoptimizer::TableEntryGenerator::GeneratePrologue() {
|
| + UseScratchRegisterScope temps(masm());
|
| + Register entry_id = temps.AcquireX();
|
| +
|
| // Create a sequence of deoptimization entries.
|
| // Note that registers are still live when jumping to an entry.
|
| Label done;
|
| @@ -349,15 +352,13 @@ void Deoptimizer::TableEntryGenerator::GeneratePrologue() {
|
| for (int i = 0; i < count(); i++) {
|
| int start = masm()->pc_offset();
|
| USE(start);
|
| - __ movz(masm()->Tmp0(), i);
|
| + __ movz(entry_id, i);
|
| __ b(&done);
|
| ASSERT(masm()->pc_offset() - start == table_entry_size_);
|
| }
|
| }
|
| __ Bind(&done);
|
| - // TODO(all): We need to add some kind of assertion to verify that Tmp0()
|
| - // is not clobbered by Push.
|
| - __ Push(masm()->Tmp0());
|
| + __ Push(entry_id);
|
| }
|
|
|
|
|
|
|