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

Unified Diff: runtime/vm/intrinsifier_arm.cc

Issue 468793004: VM: Improve performance of method recognizer and unify the it with the intrinsifier. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 4 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/intrinsifier.cc ('k') | runtime/vm/intrinsifier_arm64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/intrinsifier_arm.cc
===================================================================
--- runtime/vm/intrinsifier_arm.cc (revision 39404)
+++ runtime/vm/intrinsifier_arm.cc (working copy)
@@ -22,19 +22,19 @@
#define __ assembler->
-void Intrinsifier::Array_getLength(Assembler* assembler) {
+void Intrinsifier::ObjectArrayLength(Assembler* assembler) {
__ ldr(R0, Address(SP, 0 * kWordSize));
__ ldr(R0, FieldAddress(R0, Array::length_offset()));
__ Ret();
}
-void Intrinsifier::ImmutableList_getLength(Assembler* assembler) {
- Array_getLength(assembler);
+void Intrinsifier::ImmutableArrayLength(Assembler* assembler) {
+ ObjectArrayLength(assembler);
}
-void Intrinsifier::Array_getIndexed(Assembler* assembler) {
+void Intrinsifier::ObjectArrayGetIndexed(Assembler* assembler) {
Label fall_through;
__ ldr(R0, Address(SP, + 0 * kWordSize)); // Index
@@ -56,8 +56,8 @@
}
-void Intrinsifier::ImmutableList_getIndexed(Assembler* assembler) {
- Array_getIndexed(assembler);
+void Intrinsifier::ImmutableArrayGetIndexed(Assembler* assembler) {
+ ObjectArrayGetIndexed(assembler);
}
@@ -75,7 +75,7 @@
// Intrinsify only for Smi value and index. Non-smi values need a store buffer
// update. Array length is always a Smi.
-void Intrinsifier::Array_setIndexed(Assembler* assembler) {
+void Intrinsifier::ObjectArraySetIndexed(Assembler* assembler) {
Label fall_through;
if (FLAG_enable_type_checks) {
@@ -137,7 +137,7 @@
// Allocate a GrowableObjectArray using the backing array specified.
// On stack: type argument (+1), data (+0).
-void Intrinsifier::GrowableList_Allocate(Assembler* assembler) {
+void Intrinsifier::GrowableArray_Allocate(Assembler* assembler) {
// The newly allocated object is returned in R0.
const intptr_t kTypeArgumentsOffset = 1 * kWordSize;
const intptr_t kArrayOffset = 0 * kWordSize;
@@ -173,14 +173,14 @@
}
-void Intrinsifier::GrowableList_getLength(Assembler* assembler) {
+void Intrinsifier::GrowableArrayLength(Assembler* assembler) {
__ ldr(R0, Address(SP, 0 * kWordSize));
__ ldr(R0, FieldAddress(R0, GrowableObjectArray::length_offset()));
__ Ret();
}
-void Intrinsifier::GrowableList_getCapacity(Assembler* assembler) {
+void Intrinsifier::GrowableArrayCapacity(Assembler* assembler) {
__ ldr(R0, Address(SP, 0 * kWordSize));
__ ldr(R0, FieldAddress(R0, GrowableObjectArray::data_offset()));
__ ldr(R0, FieldAddress(R0, Array::length_offset()));
@@ -188,7 +188,7 @@
}
-void Intrinsifier::GrowableList_getIndexed(Assembler* assembler) {
+void Intrinsifier::GrowableArrayGetIndexed(Assembler* assembler) {
Label fall_through;
__ ldr(R0, Address(SP, + 0 * kWordSize)); // Index
@@ -213,7 +213,7 @@
// Set value into growable object array at specified index.
// On stack: growable array (+2), index (+1), value (+0).
-void Intrinsifier::GrowableList_setIndexed(Assembler* assembler) {
+void Intrinsifier::GrowableArraySetIndexed(Assembler* assembler) {
if (FLAG_enable_type_checks) {
return;
}
@@ -241,7 +241,7 @@
// Set length of growable object array. The length cannot
// be greater than the length of the data container.
// On stack: growable array (+1), length (+0).
-void Intrinsifier::GrowableList_setLength(Assembler* assembler) {
+void Intrinsifier::GrowableArraySetLength(Assembler* assembler) {
__ ldr(R0, Address(SP, 1 * kWordSize)); // Growable array.
__ ldr(R1, Address(SP, 0 * kWordSize)); // Length value.
__ tst(R1, Operand(kSmiTagMask)); // Check for Smi.
@@ -253,7 +253,7 @@
// Set data of growable object array.
// On stack: growable array (+1), data (+0).
-void Intrinsifier::GrowableList_setData(Assembler* assembler) {
+void Intrinsifier::GrowableArraySetData(Assembler* assembler) {
if (FLAG_enable_type_checks) {
return;
}
@@ -276,7 +276,7 @@
// Add an element to growable array if it doesn't need to grow, otherwise
// call into regular code.
// On stack: growable array (+1), value (+0).
-void Intrinsifier::GrowableList_add(Assembler* assembler) {
+void Intrinsifier::GrowableArray_add(Assembler* assembler) {
// In checked mode we need to type-check the incoming argument.
if (FLAG_enable_type_checks) {
return;
@@ -393,14 +393,14 @@
// Gets the length of a TypedData.
-void Intrinsifier::TypedData_getLength(Assembler* assembler) {
+void Intrinsifier::TypedDataLength(Assembler* assembler) {
__ ldr(R0, Address(SP, 0 * kWordSize));
__ ldr(R0, FieldAddress(R0, TypedData::length_offset()));
__ Ret();
}
-void Intrinsifier::Uint8Array_getIndexed(Assembler* assembler) {
+void Intrinsifier::Uint8ArrayGetIndexed(Assembler* assembler) {
Label fall_through;
__ ldr(R0, Address(SP, + 0 * kWordSize)); // Index.
__ ldr(R1, Address(SP, + 1 * kWordSize)); // Array.
@@ -421,7 +421,7 @@
}
-void Intrinsifier::ExternalUint8Array_getIndexed(Assembler* assembler) {
+void Intrinsifier::ExternalUint8ArrayGetIndexed(Assembler* assembler) {
Label fall_through;
__ ldr(R0, Address(SP, + 0 * kWordSize)); // Index.
@@ -444,7 +444,7 @@
}
-void Intrinsifier::Float64Array_getIndexed(Assembler* assembler) {
+void Intrinsifier::Float64ArrayGetIndexed(Assembler* assembler) {
if (!TargetCPUFeatures::vfp_supported()) {
return;
}
@@ -482,7 +482,7 @@
}
-void Intrinsifier::Float64Array_setIndexed(Assembler* assembler) {
+void Intrinsifier::Float64ArraySetIndexed(Assembler* assembler) {
if (!TargetCPUFeatures::vfp_supported()) {
return;
}
@@ -1261,7 +1261,7 @@
}
-void Intrinsifier::Double_toInt(Assembler* assembler) {
+void Intrinsifier::DoubleToInteger(Assembler* assembler) {
if (TargetCPUFeatures::vfp_supported()) {
Label fall_through;
@@ -1286,7 +1286,7 @@
}
-void Intrinsifier::Math_sqrt(Assembler* assembler) {
+void Intrinsifier::MathSqrt(Assembler* assembler) {
if (TargetCPUFeatures::vfp_supported()) {
Label fall_through, is_smi, double_op;
TestLastArgumentIsDouble(assembler, &is_smi, &fall_through);
@@ -1354,7 +1354,7 @@
}
-void Intrinsifier::Object_equal(Assembler* assembler) {
+void Intrinsifier::ObjectEquals(Assembler* assembler) {
__ ldr(R0, Address(SP, 0 * kWordSize));
__ ldr(R1, Address(SP, 1 * kWordSize));
__ cmp(R0, Operand(R1));
@@ -1372,14 +1372,14 @@
}
-void Intrinsifier::String_getLength(Assembler* assembler) {
+void Intrinsifier::StringBaseLength(Assembler* assembler) {
__ ldr(R0, Address(SP, 0 * kWordSize));
__ ldr(R0, FieldAddress(R0, String::length_offset()));
__ Ret();
}
-void Intrinsifier::String_codeUnitAt(Assembler* assembler) {
+void Intrinsifier::StringBaseCodeUnitAt(Assembler* assembler) {
Label fall_through, try_two_byte_string;
__ ldr(R1, Address(SP, 0 * kWordSize)); // Index.
@@ -1411,7 +1411,7 @@
}
-void Intrinsifier::String_getIsEmpty(Assembler* assembler) {
+void Intrinsifier::StringBaseIsEmpty(Assembler* assembler) {
__ ldr(R0, Address(SP, 0 * kWordSize));
__ ldr(R0, FieldAddress(R0, String::length_offset()));
__ cmp(R0, Operand(Smi::RawValue(0)));
@@ -1616,7 +1616,7 @@
}
-void Intrinsifier::OneByteString_setAt(Assembler* assembler) {
+void Intrinsifier::OneByteStringSetAt(Assembler* assembler) {
__ ldr(R2, Address(SP, 0 * kWordSize)); // Value.
__ ldr(R1, Address(SP, 1 * kWordSize)); // Index.
__ ldr(R0, Address(SP, 2 * kWordSize)); // OneByteString.
« no previous file with comments | « runtime/vm/intrinsifier.cc ('k') | runtime/vm/intrinsifier_arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698