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

Unified Diff: runtime/vm/stub_code_arm64.cc

Issue 2874763003: Add AddImmediate(reg, int) to ARM64 assembler (Closed)
Patch Set: Fix bug Created 3 years, 7 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
« no previous file with comments | « runtime/vm/stub_code_arm.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/stub_code_arm64.cc
diff --git a/runtime/vm/stub_code_arm64.cc b/runtime/vm/stub_code_arm64.cc
index 30d38de94c5a9eb3eef432ea1b4b84b89d4b3b67..53ee64b428a35ef0a1fd81535dac8d070f8b758c 100644
--- a/runtime/vm/stub_code_arm64.cc
+++ b/runtime/vm/stub_code_arm64.cc
@@ -87,7 +87,7 @@ void StubCode::GenerateCallToRuntimeStub(Assembler* assembler) {
__ add(R2, ZR, Operand(R4, LSL, 3));
__ add(R2, FP, Operand(R2)); // Compute argv.
// Set argv in NativeArguments.
- __ AddImmediate(R2, R2, kParamEndSlotFromFp * kWordSize);
+ __ AddImmediate(R2, kParamEndSlotFromFp * kWordSize);
ASSERT(retval_offset == 3 * kWordSize);
__ AddImmediate(R3, R2, kWordSize);
@@ -417,7 +417,7 @@ static void PushArgumentsArray(Assembler* assembler) {
// R2: smi-tagged argument count, may be zero (was preserved by the stub).
__ Push(R0); // Array is in R0 and on top of stack.
__ add(R1, FP, Operand(R2, LSL, 2));
- __ AddImmediate(R1, R1, kParamEndSlotFromFp * kWordSize);
+ __ AddImmediate(R1, kParamEndSlotFromFp * kWordSize);
__ AddImmediate(R3, R0, Array::data_offset() - kHeapObjectTag);
// R1: address of first argument on stack.
// R3: address of first argument in array.
@@ -427,8 +427,8 @@ static void PushArgumentsArray(Assembler* assembler) {
__ b(&loop_exit, LE);
__ Bind(&loop);
__ ldr(R7, Address(R1));
- __ AddImmediate(R1, R1, -kWordSize);
- __ AddImmediate(R3, R3, kWordSize);
+ __ AddImmediate(R1, -kWordSize);
+ __ AddImmediate(R3, kWordSize);
__ AddImmediateSetFlags(R2, R2, -Smi::RawValue(1));
__ str(R7, Address(R3, -kWordSize));
__ b(&loop, GE);
@@ -797,7 +797,7 @@ void StubCode::GenerateAllocateArrayStub(Assembler* assembler) {
__ CompareRegisters(R1, R7);
__ b(&done, CS);
__ str(TMP, Address(R1)); // Store if unsigned lower.
- __ AddImmediate(R1, R1, kWordSize);
+ __ AddImmediate(R1, kWordSize);
__ b(&loop); // Loop until R1 == R7.
__ Bind(&done);
@@ -894,7 +894,7 @@ void StubCode::GenerateInvokeDartCodeStub(Assembler* assembler) {
// Compute address of 'arguments array' data area into R2.
__ LoadFromOffset(R2, R2, VMHandles::kOffsetOfRawPtrInHandle);
- __ AddImmediate(R2, R2, Array::data_offset() - kHeapObjectTag);
+ __ AddImmediate(R2, Array::data_offset() - kHeapObjectTag);
// Set up arguments for the Dart call.
Label push_arguments;
@@ -1222,7 +1222,7 @@ void StubCode::GenerateAllocationStubForClass(Assembler* assembler,
__ CompareRegisters(R4, R3);
__ b(&done, CS);
__ str(R0, Address(R4));
- __ AddImmediate(R4, R4, kWordSize);
+ __ AddImmediate(R4, kWordSize);
__ b(&init_loop);
__ Bind(&done);
}
@@ -1331,7 +1331,7 @@ void StubCode::GenerateUsageCounterIncrement(Assembler* assembler,
__ LoadFieldFromOffset(func_reg, ic_reg, ICData::owner_offset());
__ LoadFieldFromOffset(R7, func_reg, Function::usage_counter_offset(),
kWord);
- __ AddImmediate(R7, R7, 1);
+ __ AddImmediate(R7, 1);
__ StoreFieldToOffset(R7, func_reg, Function::usage_counter_offset(),
kWord);
}
@@ -1377,7 +1377,7 @@ static void EmitFastSmiOp(Assembler* assembler,
// R5: IC data object (preserved).
__ LoadFieldFromOffset(R6, R5, ICData::ic_data_offset());
// R6: ic_data_array with check entries: classes and target functions.
- __ AddImmediate(R6, R6, Array::data_offset() - kHeapObjectTag);
+ __ AddImmediate(R6, Array::data_offset() - kHeapObjectTag);
// R6: points directly to the first ic data array element.
#if defined(DEBUG)
// Check that first entry is for Smi/Smi.
@@ -1462,7 +1462,7 @@ void StubCode::GenerateNArgsCheckInlineCacheStub(
// R5: IC data object (preserved).
__ LoadFieldFromOffset(R6, R5, ICData::ic_data_offset());
// R6: ic_data_array with check entries: classes and target functions.
- __ AddImmediate(R6, R6, Array::data_offset() - kHeapObjectTag);
+ __ AddImmediate(R6, Array::data_offset() - kHeapObjectTag);
// R6: points directly to the first ic data array element.
// Get the receiver's class ID (first read number of arguments from
@@ -1503,7 +1503,7 @@ void StubCode::GenerateNArgsCheckInlineCacheStub(
const intptr_t entry_size =
ICData::TestEntryLengthFor(num_args) * kWordSize;
- __ AddImmediate(R6, R6, entry_size); // Next entry.
+ __ AddImmediate(R6, entry_size); // Next entry.
__ CompareImmediate(R2, Smi::RawValue(kIllegalCid)); // Done?
if (unroll == 0) {
@@ -1682,7 +1682,7 @@ void StubCode::GenerateZeroArgsUnoptimizedStaticCallStub(Assembler* assembler) {
// R5: IC data object (preserved).
__ LoadFieldFromOffset(R6, R5, ICData::ic_data_offset());
// R6: ic_data_array with entries: target functions and count.
- __ AddImmediate(R6, R6, Array::data_offset() - kHeapObjectTag);
+ __ AddImmediate(R6, Array::data_offset() - kHeapObjectTag);
// R6: points directly to the first ic data array element.
const intptr_t target_offset = ICData::TargetIndexFor(0) * kWordSize;
const intptr_t count_offset = ICData::CountIndexFor(0) * kWordSize;
@@ -1826,7 +1826,7 @@ static void GenerateSubtypeNTestCacheStub(Assembler* assembler, int n) {
// R6: instance class id.
// R4: instance type arguments (null if none), used only if n > 1.
__ LoadFieldFromOffset(R3, R3, SubtypeTestCache::cache_offset());
- __ AddImmediate(R3, R3, Array::data_offset() - kHeapObjectTag);
+ __ AddImmediate(R3, Array::data_offset() - kHeapObjectTag);
Label loop, found, not_found, next_iteration;
// R3: entry start.
@@ -1869,7 +1869,7 @@ static void GenerateSubtypeNTestCacheStub(Assembler* assembler, int n) {
}
}
__ Bind(&next_iteration);
- __ AddImmediate(R3, R3, kWordSize * SubtypeTestCache::kTestEntryLength);
+ __ AddImmediate(R3, kWordSize * SubtypeTestCache::kTestEntryLength);
__ b(&loop);
// Fall through to not found.
__ Bind(&not_found);
@@ -2184,7 +2184,7 @@ void StubCode::GenerateMegamorphicCallStub(Assembler* assembler) {
__ b(&load_target, EQ); // branch if miss.
// Try next extry in the table.
- __ AddImmediate(R3, R3, Smi::RawValue(1));
+ __ AddImmediate(R3, Smi::RawValue(1));
__ b(&loop);
// Load cid for the Smi case.
@@ -2204,7 +2204,7 @@ void StubCode::GenerateICCallThroughFunctionStub(Assembler* assembler) {
Label loop, found, miss;
__ ldr(R4, FieldAddress(R5, ICData::arguments_descriptor_offset()));
__ ldr(R8, FieldAddress(R5, ICData::ic_data_offset()));
- __ AddImmediate(R8, R8, Array::data_offset() - kHeapObjectTag);
+ __ AddImmediate(R8, Array::data_offset() - kHeapObjectTag);
// R8: first IC entry
__ LoadTaggedClassIdMayBeSmi(R1, R0);
// R1: receiver cid as Smi
@@ -2217,7 +2217,7 @@ void StubCode::GenerateICCallThroughFunctionStub(Assembler* assembler) {
__ b(&miss, EQ);
const intptr_t entry_length = ICData::TestEntryLengthFor(1) * kWordSize;
- __ AddImmediate(R8, R8, entry_length); // Next entry.
+ __ AddImmediate(R8, entry_length); // Next entry.
__ b(&loop);
__ Bind(&found);
@@ -2239,7 +2239,7 @@ void StubCode::GenerateICCallThroughCodeStub(Assembler* assembler) {
Label loop, found, miss;
__ ldr(R4, FieldAddress(R5, ICData::arguments_descriptor_offset()));
__ ldr(R8, FieldAddress(R5, ICData::ic_data_offset()));
- __ AddImmediate(R8, R8, Array::data_offset() - kHeapObjectTag);
+ __ AddImmediate(R8, Array::data_offset() - kHeapObjectTag);
// R8: first IC entry
__ LoadTaggedClassIdMayBeSmi(R1, R0);
// R1: receiver cid as Smi
@@ -2252,7 +2252,7 @@ void StubCode::GenerateICCallThroughCodeStub(Assembler* assembler) {
__ b(&miss, EQ);
const intptr_t entry_length = ICData::TestEntryLengthFor(1) * kWordSize;
- __ AddImmediate(R8, R8, entry_length); // Next entry.
+ __ AddImmediate(R8, entry_length); // Next entry.
__ b(&loop);
__ Bind(&found);
« no previous file with comments | « runtime/vm/stub_code_arm.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698