Index: runtime/vm/intrinsifier_ia32.cc |
=================================================================== |
--- runtime/vm/intrinsifier_ia32.cc (revision 36458) |
+++ runtime/vm/intrinsifier_ia32.cc (working copy) |
@@ -1248,16 +1248,12 @@ |
__ movl(EAX, Address(ESP, + 1 * kWordSize)); // Receiver. |
__ movl(EBX, FieldAddress(EAX, state_field.Offset())); // Field '_state'. |
// Addresses of _state[0] and _state[1]. |
- Address addr_0 = FlowGraphCompiler::ElementAddressForIntIndex( |
- kTypedDataUint32ArrayCid, |
- FlowGraphCompiler::ElementSizeFor(kTypedDataUint32ArrayCid), |
- EBX, |
- 0); |
- Address addr_1 = FlowGraphCompiler::ElementAddressForIntIndex( |
- kTypedDataUint32ArrayCid, |
- FlowGraphCompiler::ElementSizeFor(kTypedDataUint32ArrayCid), |
- EBX, |
- 1); |
+ const intptr_t index_scale = |
+ FlowGraphCompiler::ElementSizeFor(kTypedDataUint32ArrayCid); |
+ const intptr_t offset = |
+ FlowGraphCompiler::DataOffsetFor(kTypedDataUint32ArrayCid); |
+ Address addr_0 = FieldAddress(EBX, 0 * index_scale + offset); |
+ Address addr_1 = FieldAddress(EBX, 1 * index_scale + offset); |
__ movl(EAX, Immediate(a_int32_value)); |
// 64-bit multiply EAX * value -> EDX:EAX. |
__ mull(addr_0); |