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

Unified Diff: runtime/vm/assembler_arm64.cc

Issue 251083007: Removes loads from PP from stubs on arm64. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 8 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: runtime/vm/assembler_arm64.cc
===================================================================
--- runtime/vm/assembler_arm64.cc (revision 35524)
+++ runtime/vm/assembler_arm64.cc (working copy)
@@ -611,8 +611,8 @@
void Assembler::LoadFromOffset(
Register dest, Register base, int32_t offset, OperandSize sz) {
ASSERT(base != TMP2);
- if (Address::CanHoldOffset(offset)) {
- ldr(dest, Address(base, offset), sz);
+ if (Address::CanHoldOffset(offset, Address::Offset, sz)) {
+ ldr(dest, Address(base, offset, Address::Offset, sz), sz);
} else {
// Since offset is 32-bits, it won't be loaded from the pool.
AddImmediate(TMP2, base, offset, kNoRegister);
@@ -625,8 +625,8 @@
Register src, Register base, int32_t offset, OperandSize sz) {
ASSERT(src != TMP2);
ASSERT(base != TMP2);
- if (Address::CanHoldOffset(offset)) {
- str(src, Address(base, offset), sz);
+ if (Address::CanHoldOffset(offset, Address::Offset, sz)) {
+ str(src, Address(base, offset, Address::Offset, sz), sz);
} else {
// Since offset is 32-bits, it won't be loaded from the pool.
AddImmediate(TMP2, base, offset, kNoRegister);
@@ -923,6 +923,7 @@
void Assembler::UpdateAllocationStats(intptr_t cid,
Register temp_reg,
+ Register pp,
Heap::Space space) {
ASSERT(temp_reg != kNoRegister);
ASSERT(temp_reg != TMP);
@@ -936,10 +937,10 @@
const uword count_field_offset = (space == Heap::kNew) ?
ClassHeapStats::allocated_since_gc_new_space_offset() :
ClassHeapStats::allocated_since_gc_old_space_offset();
- LoadImmediate(temp_reg, class_heap_stats_table_address + class_offset, PP);
+ LoadImmediate(temp_reg, class_heap_stats_table_address + class_offset, pp);
const Address& count_address = Address(temp_reg, count_field_offset);
ldr(TMP, count_address);
- AddImmediate(TMP, TMP, 1, PP);
+ AddImmediate(TMP, TMP, 1, pp);
str(TMP, count_address);
} else {
ASSERT(temp_reg != kNoRegister);
@@ -947,11 +948,11 @@
const uword count_field_offset = (space == Heap::kNew) ?
ClassHeapStats::allocated_since_gc_new_space_offset() :
ClassHeapStats::allocated_since_gc_old_space_offset();
- LoadImmediate(temp_reg, class_table->ClassStatsTableAddress(), PP);
+ LoadImmediate(temp_reg, class_table->ClassStatsTableAddress(), pp);
ldr(temp_reg, Address(temp_reg));
- AddImmediate(temp_reg, temp_reg, class_offset, PP);
+ AddImmediate(temp_reg, temp_reg, class_offset, pp);
ldr(TMP, Address(temp_reg, count_field_offset));
- AddImmediate(TMP, TMP, 1, PP);
+ AddImmediate(TMP, TMP, 1, pp);
str(TMP, Address(temp_reg, count_field_offset));
}
}

Powered by Google App Engine
This is Rietveld 408576698