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

Unified Diff: runtime/vm/intrinsifier_arm64.cc

Issue 593363003: Expands the use of Immediate and Operand wrappers. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 2 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/intermediate_language_mips.cc ('k') | runtime/vm/intrinsifier_mips.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/intrinsifier_arm64.cc
===================================================================
--- runtime/vm/intrinsifier_arm64.cc (revision 40903)
+++ runtime/vm/intrinsifier_arm64.cc (working copy)
@@ -66,7 +66,7 @@
__ b(&checked_ok, EQ);
// Check for int and num.
- __ tsti(R2, kSmiTagMask); // Value is Smi?
+ __ tsti(R2, Immediate(Immediate(kSmiTagMask))); // Value is Smi?
__ b(&fall_through, NE); // Non-smi value.
__ CompareObject(R0, Type::ZoneHandle(Type::IntType()), PP);
__ b(&checked_ok, EQ);
@@ -75,7 +75,7 @@
__ Bind(&checked_ok);
}
__ ldr(R1, Address(SP, 1 * kWordSize)); // Index.
- __ tsti(R1, kSmiTagMask);
+ __ tsti(R1, Immediate(kSmiTagMask));
// Index not Smi.
__ b(&fall_through, NE);
__ ldr(R0, Address(SP, 2 * kWordSize)); // Array.
@@ -143,7 +143,7 @@
__ ldr(R0, Address(SP, + 0 * kWordSize)); // Index
__ ldr(R1, Address(SP, + 1 * kWordSize)); // Array
- __ tsti(R0, kSmiTagMask);
+ __ tsti(R0, Immediate(kSmiTagMask));
__ b(&fall_through, NE); // Index is not an smi, fall through.
// Range check.
@@ -170,7 +170,7 @@
Label fall_through;
__ ldr(R1, Address(SP, 1 * kWordSize)); // Index.
__ ldr(R0, Address(SP, 2 * kWordSize)); // GrowableArray.
- __ tsti(R1, kSmiTagMask);
+ __ tsti(R1, Immediate(kSmiTagMask));
__ b(&fall_through, NE); // Non-smi index.
// Range check using _length field.
__ ldr(R2, FieldAddress(R0, GrowableObjectArray::length_offset()));
@@ -197,7 +197,7 @@
Label fall_through;
__ ldr(R0, Address(SP, 1 * kWordSize)); // Growable array.
__ ldr(R1, Address(SP, 0 * kWordSize)); // Length value.
- __ tsti(R1, kSmiTagMask); // Check for Smi.
+ __ tsti(R1, Immediate(kSmiTagMask)); // Check for Smi.
__ b(&fall_through, NE);
__ str(R1, FieldAddress(R0, GrowableObjectArray::length_offset()));
__ ret();
@@ -215,7 +215,7 @@
Label fall_through;
__ ldr(R1, Address(SP, 0 * kWordSize)); // Data.
// Check that data is an ObjectArray.
- __ tsti(R1, kSmiTagMask);
+ __ tsti(R1, Immediate(kSmiTagMask));
__ b(&fall_through, EQ); // Data is Smi.
__ CompareClassId(R1, kArrayCid, kNoPP);
__ b(&fall_through, NE);
@@ -283,7 +283,7 @@
__ ldr(R2, Address(SP, kArrayLengthStackOffset)); /* Array length. */ \
/* Check that length is a positive Smi. */ \
/* R2: requested array length argument. */ \
- __ tsti(R2, kSmiTagMask); \
+ __ tsti(R2, Immediate(kSmiTagMask)); \
__ b(&fall_through, NE); \
__ CompareRegisters(R2, ZR); \
__ b(&fall_through, LT); \
@@ -295,7 +295,7 @@
__ LslImmediate(R2, R2, scale_shift); \
const intptr_t fixed_size = sizeof(Raw##type_name) + kObjectAlignment - 1; \
__ AddImmediate(R2, R2, fixed_size, kNoPP); \
- __ andi(R2, R2, ~(kObjectAlignment - 1)); \
+ __ andi(R2, R2, Immediate(~(kObjectAlignment - 1))); \
Heap* heap = Isolate::Current()->heap(); \
Heap::Space space = heap->SpaceForAllocation(cid); \
__ LoadImmediate(R0, heap->TopAddress(space), kNoPP); \
@@ -385,7 +385,7 @@
__ ldr(R0, Address(SP, + 0 * kWordSize));
__ ldr(R1, Address(SP, + 1 * kWordSize));
__ orr(TMP, R0, Operand(R1));
- __ tsti(TMP, kSmiTagMask);
+ __ tsti(TMP, Immediate(kSmiTagMask));
__ b(not_smi, NE);
}
@@ -510,7 +510,7 @@
__ ldr(R1, Address(SP, + 0 * kWordSize));
__ ldr(R0, Address(SP, + 1 * kWordSize));
__ orr(TMP, R0, Operand(R1));
- __ tsti(TMP, kSmiTagMask);
+ __ tsti(TMP, Immediate(kSmiTagMask));
__ b(&fall_through, NE);
// R1: Tagged left (dividend).
// R0: Tagged right (divisor).
@@ -564,7 +564,7 @@
void Intrinsifier::Integer_negate(Assembler* assembler) {
Label fall_through;
__ ldr(R0, Address(SP, + 0 * kWordSize)); // Grab first argument.
- __ tsti(R0, kSmiTagMask); // Test for Smi.
+ __ tsti(R0, Immediate(kSmiTagMask)); // Test for Smi.
__ b(&fall_through, NE);
__ negs(R0, R0);
__ b(&fall_through, VS);
@@ -694,7 +694,7 @@
__ b(&true_label, EQ);
__ orr(R2, R0, Operand(R1));
- __ tsti(R2, kSmiTagMask);
+ __ tsti(R2, Immediate(kSmiTagMask));
__ b(&check_for_mint, NE); // If R0 or R1 is not a smi do Mint checks.
// Both arguments are smi, '===' is good enough.
@@ -708,7 +708,7 @@
Label receiver_not_smi;
__ Bind(&check_for_mint);
- __ tsti(R1, kSmiTagMask); // Check receiver.
+ __ tsti(R1, Immediate(kSmiTagMask)); // Check receiver.
__ b(&receiver_not_smi, NE);
// Left (receiver) is Smi, return false if right is not Double.
@@ -726,7 +726,7 @@
__ CompareClassId(R1, kMintCid, kNoPP);
__ b(&fall_through, NE);
// Receiver is Mint, return false if right is Smi.
- __ tsti(R0, kSmiTagMask);
+ __ tsti(R0, Immediate(kSmiTagMask));
__ b(&fall_through, NE);
__ LoadObject(R0, Bool::False(), PP);
__ ret();
@@ -767,7 +767,7 @@
void Intrinsifier::Smi_bitNegate(Assembler* assembler) {
__ ldr(R0, Address(SP, 0 * kWordSize));
__ mvn(R0, R0);
- __ andi(R0, R0, ~kSmiTagMask); // Remove inverted smi-tag.
+ __ andi(R0, R0, Immediate(~kSmiTagMask)); // Remove inverted smi-tag.
__ ret();
}
@@ -838,7 +838,7 @@
Label* is_smi,
Label* not_double_smi) {
__ ldr(R0, Address(SP, 0 * kWordSize));
- __ tsti(R0, kSmiTagMask);
+ __ tsti(R0, Immediate(kSmiTagMask));
__ b(is_smi, EQ);
__ CompareClassId(R0, kDoubleCid, kNoPP);
__ b(not_double_smi, NE);
@@ -955,7 +955,7 @@
Label fall_through;
// Only smis allowed.
__ ldr(R0, Address(SP, 0 * kWordSize));
- __ tsti(R0, kSmiTagMask);
+ __ tsti(R0, Immediate(kSmiTagMask));
__ b(&fall_through, NE);
// Is Smi.
__ SmiUntag(R0);
@@ -976,7 +976,7 @@
Label fall_through;
__ ldr(R0, Address(SP, 0 * kWordSize));
- __ tsti(R0, kSmiTagMask);
+ __ tsti(R0, Immediate(kSmiTagMask));
__ b(&fall_through, NE);
// Is Smi.
__ SmiUntag(R0);
@@ -1026,7 +1026,7 @@
// Check for negative zero by looking at the sign bit.
__ fmovrd(R1, V0);
__ LsrImmediate(R1, R1, 63);
- __ tsti(R1, 1);
+ __ tsti(R1, Immediate(1));
__ csel(R0, true_reg, false_reg, NE); // Sign bit set.
__ ret();
}
@@ -1103,7 +1103,7 @@
__ LoadImmediate(R0, a_int_value, kNoPP);
__ LoadFromOffset(R2, R1, disp, kNoPP);
__ LsrImmediate(R3, R2, 32);
- __ andi(R2, R2, 0xffffffff);
+ __ andi(R2, R2, Immediate(0xffffffff));
__ mul(R2, R0, R2);
__ add(R2, R2, Operand(R3));
__ StoreToOffset(R2, R1, disp, kNoPP);
@@ -1139,7 +1139,7 @@
__ ldr(R1, Address(SP, 0 * kWordSize)); // Index.
__ ldr(R0, Address(SP, 1 * kWordSize)); // String.
- __ tsti(R1, kSmiTagMask);
+ __ tsti(R1, Immediate(kSmiTagMask));
__ b(&fall_through, NE); // Index is not a Smi.
// Range check.
__ ldr(R2, FieldAddress(R0, String::length_offset()));
@@ -1171,7 +1171,7 @@
__ ldr(R1, Address(SP, 0 * kWordSize)); // Index.
__ ldr(R0, Address(SP, 1 * kWordSize)); // String.
- __ tsti(R1, kSmiTagMask);
+ __ tsti(R1, Immediate(kSmiTagMask));
__ b(&fall_through, NE); // Index is not a Smi.
// Range check.
__ ldr(R2, FieldAddress(R0, String::length_offset()));
@@ -1297,7 +1297,7 @@
__ SmiUntag(length_reg);
const intptr_t fixed_size = sizeof(RawString) + kObjectAlignment - 1;
__ AddImmediate(length_reg, length_reg, fixed_size, kNoPP);
- __ andi(length_reg, length_reg, ~(kObjectAlignment - 1));
+ __ andi(length_reg, length_reg, Immediate(~(kObjectAlignment - 1)));
Isolate* isolate = Isolate::Current();
Heap* heap = isolate->heap();
@@ -1371,7 +1371,7 @@
__ ldr(R2, Address(SP, kEndIndexOffset));
__ ldr(TMP, Address(SP, kStartIndexOffset));
__ orr(R3, R2, Operand(TMP));
- __ tsti(R3, kSmiTagMask);
+ __ tsti(R3, Immediate(kSmiTagMask));
__ b(&fall_through, NE); // 'start', 'end' not Smi.
__ sub(R2, R2, Operand(TMP));
@@ -1454,7 +1454,7 @@
__ b(&is_true, EQ);
// Is other OneByteString?
- __ tsti(R1, kSmiTagMask);
+ __ tsti(R1, Immediate(kSmiTagMask));
__ b(&fall_through, EQ);
__ CompareClassId(R1, string_cid, kNoPP);
__ b(&fall_through, NE);
« no previous file with comments | « runtime/vm/intermediate_language_mips.cc ('k') | runtime/vm/intrinsifier_mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698