Chromium Code Reviews| Index: runtime/vm/assembler_arm64.cc |
| diff --git a/runtime/vm/assembler_arm64.cc b/runtime/vm/assembler_arm64.cc |
| index 6da9770ad9986838a68ca00b97b51422eae62494..7911896dc55ebb6558c148f423c88e404e67c01e 100644 |
| --- a/runtime/vm/assembler_arm64.cc |
| +++ b/runtime/vm/assembler_arm64.cc |
| @@ -1376,26 +1376,25 @@ void Assembler::UpdateAllocationStatsWithSize(intptr_t cid, |
| void Assembler::TryAllocate(const Class& cls, |
| Label* failure, |
| Register instance_reg, |
| + Register temp_reg, |
|
regis
2014/07/23 22:29:33
Use TMP2.
Vyacheslav Egorov (Google)
2014/07/24 11:24:48
AddImmediate is using TMP2 as a scratch register o
regis
2014/07/24 17:06:07
Acknowledged.
|
| Register pp) { |
| ASSERT(failure != NULL); |
| if (FLAG_inline_alloc) { |
| Heap* heap = Isolate::Current()->heap(); |
| const intptr_t instance_size = cls.instance_size(); |
| - LoadImmediate(instance_reg, heap->TopAddress(), pp); |
| - ldr(instance_reg, Address(instance_reg)); |
| + LoadImmediate(temp_reg, heap->NewSpaceAddress(), pp); |
| + ldr(instance_reg, Address(temp_reg, Scavenger::top_offset())); |
| AddImmediate(instance_reg, instance_reg, instance_size, pp); |
| // instance_reg: potential next object start. |
| - LoadImmediate(TMP, heap->EndAddress(), pp); |
| - ldr(TMP, Address(TMP)); |
| + ldr(TMP, Address(temp_reg, Scavenger::end_offset())); |
| CompareRegisters(TMP, instance_reg); |
| // fail if heap end unsigned less than or equal to instance_reg. |
| b(failure, LS); |
| // Successfully allocated the object, now update top to point to |
| // next object start and store the class in the class field of object. |
| - LoadImmediate(TMP, heap->TopAddress(), pp); |
| - str(instance_reg, Address(TMP)); |
| + str(instance_reg, Address(temp_reg, Scavenger::top_offset())); |
| ASSERT(instance_size >= kHeapObjectTag); |
| AddImmediate( |