| Index: runtime/vm/intrinsifier_ia32.cc
|
| ===================================================================
|
| --- runtime/vm/intrinsifier_ia32.cc (revision 39404)
|
| +++ runtime/vm/intrinsifier_ia32.cc (working copy)
|
| @@ -29,19 +29,19 @@
|
| #define __ assembler->
|
|
|
|
|
| -void Intrinsifier::Array_getLength(Assembler* assembler) {
|
| +void Intrinsifier::ObjectArrayLength(Assembler* assembler) {
|
| __ movl(EAX, Address(ESP, + 1 * kWordSize));
|
| __ movl(EAX, FieldAddress(EAX, 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;
|
| __ movl(EBX, Address(ESP, + 1 * kWordSize)); // Index.
|
| __ movl(EAX, Address(ESP, + 2 * kWordSize)); // Array.
|
| @@ -59,8 +59,8 @@
|
| }
|
|
|
|
|
| -void Intrinsifier::ImmutableList_getIndexed(Assembler* assembler) {
|
| - Array_getIndexed(assembler);
|
| +void Intrinsifier::ImmutableArrayGetIndexed(Assembler* assembler) {
|
| + ObjectArrayGetIndexed(assembler);
|
| }
|
|
|
|
|
| @@ -78,7 +78,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) {
|
| const intptr_t type_args_field_offset =
|
| @@ -135,7 +135,7 @@
|
|
|
| // Allocate a GrowableObjectArray using the backing array specified.
|
| // On stack: type argument (+2), data (+1), return-address (+0).
|
| -void Intrinsifier::GrowableList_Allocate(Assembler* assembler) {
|
| +void Intrinsifier::GrowableArray_Allocate(Assembler* assembler) {
|
| // This snippet of inlined code uses the following registers:
|
| // EAX, EBX
|
| // and the newly allocated object is returned in EAX.
|
| @@ -175,7 +175,7 @@
|
|
|
| // Get length of growable object array.
|
| // On stack: growable array (+1), return-address (+0).
|
| -void Intrinsifier::GrowableList_getLength(Assembler* assembler) {
|
| +void Intrinsifier::GrowableArrayLength(Assembler* assembler) {
|
| __ movl(EAX, Address(ESP, + 1 * kWordSize));
|
| __ movl(EAX, FieldAddress(EAX, GrowableObjectArray::length_offset()));
|
| __ ret();
|
| @@ -184,7 +184,7 @@
|
|
|
| // Get capacity of growable object array.
|
| // On stack: growable array (+1), return-address (+0).
|
| -void Intrinsifier::GrowableList_getCapacity(Assembler* assembler) {
|
| +void Intrinsifier::GrowableArrayCapacity(Assembler* assembler) {
|
| __ movl(EAX, Address(ESP, + 1 * kWordSize));
|
| __ movl(EAX, FieldAddress(EAX, GrowableObjectArray::data_offset()));
|
| __ movl(EAX, FieldAddress(EAX, Array::length_offset()));
|
| @@ -194,7 +194,7 @@
|
|
|
| // Access growable object array at specified index.
|
| // On stack: growable array (+2), index (+1), return-address (+0).
|
| -void Intrinsifier::GrowableList_getIndexed(Assembler* assembler) {
|
| +void Intrinsifier::GrowableArrayGetIndexed(Assembler* assembler) {
|
| Label fall_through;
|
| __ movl(EBX, Address(ESP, + 1 * kWordSize)); // Index.
|
| __ movl(EAX, Address(ESP, + 2 * kWordSize)); // GrowableArray.
|
| @@ -216,7 +216,7 @@
|
|
|
| // Set value into growable object array at specified index.
|
| // On stack: growable array (+3), index (+2), value (+1), return-address (+0).
|
| -void Intrinsifier::GrowableList_setIndexed(Assembler* assembler) {
|
| +void Intrinsifier::GrowableArraySetIndexed(Assembler* assembler) {
|
| if (FLAG_enable_type_checks) {
|
| return;
|
| }
|
| @@ -244,7 +244,7 @@
|
| // Set length of growable object array. The length cannot
|
| // be greater than the length of the data container.
|
| // On stack: growable array (+2), length (+1), return-address (+0).
|
| -void Intrinsifier::GrowableList_setLength(Assembler* assembler) {
|
| +void Intrinsifier::GrowableArraySetLength(Assembler* assembler) {
|
| Label fall_through;
|
| __ movl(EAX, Address(ESP, + 2 * kWordSize)); // Growable array.
|
| __ movl(EBX, Address(ESP, + 1 * kWordSize)); // Length value.
|
| @@ -258,7 +258,7 @@
|
|
|
| // Set data of growable object array.
|
| // On stack: growable array (+2), data (+1), return-address (+0).
|
| -void Intrinsifier::GrowableList_setData(Assembler* assembler) {
|
| +void Intrinsifier::GrowableArraySetData(Assembler* assembler) {
|
| if (FLAG_enable_type_checks) {
|
| return;
|
| }
|
| @@ -281,7 +281,7 @@
|
| // Add an element to growable array if it doesn't need to grow, otherwise
|
| // call into regular code.
|
| // On stack: growable array (+2), value (+1), return-address (+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;
|
|
|
| @@ -407,14 +407,14 @@
|
|
|
|
|
| // Gets the length of a TypedData.
|
| -void Intrinsifier::TypedData_getLength(Assembler* assembler) {
|
| +void Intrinsifier::TypedDataLength(Assembler* assembler) {
|
| __ movl(EAX, Address(ESP, + 1 * kWordSize));
|
| __ movl(EAX, FieldAddress(EAX, TypedData::length_offset()));
|
| __ ret();
|
| }
|
|
|
|
|
| -void Intrinsifier::Uint8Array_getIndexed(Assembler* assembler) {
|
| +void Intrinsifier::Uint8ArrayGetIndexed(Assembler* assembler) {
|
| Label fall_through;
|
| __ movl(EBX, Address(ESP, + 1 * kWordSize)); // Index.
|
| __ movl(EAX, Address(ESP, + 2 * kWordSize)); // Array.
|
| @@ -433,7 +433,7 @@
|
| }
|
|
|
|
|
| -void Intrinsifier::ExternalUint8Array_getIndexed(Assembler* assembler) {
|
| +void Intrinsifier::ExternalUint8ArrayGetIndexed(Assembler* assembler) {
|
| Label fall_through;
|
| __ movl(EBX, Address(ESP, + 1 * kWordSize)); // Index.
|
| __ movl(EAX, Address(ESP, + 2 * kWordSize)); // Array.
|
| @@ -453,7 +453,7 @@
|
| }
|
|
|
|
|
| -void Intrinsifier::Float64Array_getIndexed(Assembler* assembler) {
|
| +void Intrinsifier::Float64ArrayGetIndexed(Assembler* assembler) {
|
| Label fall_through;
|
| __ movl(EBX, Address(ESP, + 1 * kWordSize)); // Index.
|
| __ movl(EAX, Address(ESP, + 2 * kWordSize)); // Array.
|
| @@ -486,7 +486,7 @@
|
| }
|
|
|
|
|
| -void Intrinsifier::Float64Array_setIndexed(Assembler* assembler) {
|
| +void Intrinsifier::Float64ArraySetIndexed(Assembler* assembler) {
|
| Label fall_through;
|
| __ movl(EBX, Address(ESP, + 2 * kWordSize)); // Index.
|
| __ movl(EAX, Address(ESP, + 3 * kWordSize)); // Array.
|
| @@ -1262,7 +1262,7 @@
|
| }
|
|
|
|
|
| -void Intrinsifier::Double_toInt(Assembler* assembler) {
|
| +void Intrinsifier::DoubleToInteger(Assembler* assembler) {
|
| __ movl(EAX, Address(ESP, +1 * kWordSize));
|
| __ movsd(XMM0, FieldAddress(EAX, Double::value_offset()));
|
| __ cvttsd2si(EAX, XMM0);
|
| @@ -1278,7 +1278,7 @@
|
|
|
|
|
| // Argument type is not known
|
| -void Intrinsifier::Math_sqrt(Assembler* assembler) {
|
| +void Intrinsifier::MathSqrt(Assembler* assembler) {
|
| Label fall_through, is_smi, double_op;
|
| TestLastArgumentIsDouble(assembler, &is_smi, &fall_through);
|
| // Argument is double and is in EAX.
|
| @@ -1342,7 +1342,7 @@
|
|
|
|
|
| // Identity comparison.
|
| -void Intrinsifier::Object_equal(Assembler* assembler) {
|
| +void Intrinsifier::ObjectEquals(Assembler* assembler) {
|
| Label is_true;
|
| __ movl(EAX, Address(ESP, + 1 * kWordSize));
|
| __ cmpl(EAX, Address(ESP, + 2 * kWordSize));
|
| @@ -1367,14 +1367,14 @@
|
| }
|
|
|
|
|
| -void Intrinsifier::String_getLength(Assembler* assembler) {
|
| +void Intrinsifier::StringBaseLength(Assembler* assembler) {
|
| __ movl(EAX, Address(ESP, + 1 * kWordSize)); // String object.
|
| __ movl(EAX, FieldAddress(EAX, String::length_offset()));
|
| __ ret();
|
| }
|
|
|
|
|
| -void Intrinsifier::String_codeUnitAt(Assembler* assembler) {
|
| +void Intrinsifier::StringBaseCodeUnitAt(Assembler* assembler) {
|
| Label fall_through, try_two_byte_string;
|
| __ movl(EBX, Address(ESP, + 1 * kWordSize)); // Index.
|
| __ movl(EAX, Address(ESP, + 2 * kWordSize)); // String.
|
| @@ -1403,7 +1403,7 @@
|
| }
|
|
|
|
|
| -void Intrinsifier::String_getIsEmpty(Assembler* assembler) {
|
| +void Intrinsifier::StringBaseIsEmpty(Assembler* assembler) {
|
| Label is_true;
|
| // Get length.
|
| __ movl(EAX, Address(ESP, + 1 * kWordSize)); // String object.
|
| @@ -1614,7 +1614,7 @@
|
| }
|
|
|
|
|
| -void Intrinsifier::OneByteString_setAt(Assembler* assembler) {
|
| +void Intrinsifier::OneByteStringSetAt(Assembler* assembler) {
|
| __ movl(ECX, Address(ESP, + 1 * kWordSize)); // Value.
|
| __ movl(EBX, Address(ESP, + 2 * kWordSize)); // Index.
|
| __ movl(EAX, Address(ESP, + 3 * kWordSize)); // OneByteString.
|
|
|