Index: runtime/vm/intrinsifier_x64.cc |
=================================================================== |
--- runtime/vm/intrinsifier_x64.cc (revision 36458) |
+++ runtime/vm/intrinsifier_x64.cc (working copy) |
@@ -1150,17 +1150,12 @@ |
__ movq(RAX, Address(RSP, + 1 * kWordSize)); // Receiver. |
__ movq(RBX, FieldAddress(RAX, state_field.Offset())); // Field '_state'. |
// Addresses of _state[0] and _state[1]. |
- Address addr_0 = FlowGraphCompiler::ElementAddressForIntIndex( |
- kTypedDataUint32ArrayCid, |
- FlowGraphCompiler::ElementSizeFor(kTypedDataUint32ArrayCid), |
- RBX, |
- 0); |
- Address addr_1 = FlowGraphCompiler::ElementAddressForIntIndex( |
- kTypedDataUint32ArrayCid, |
- FlowGraphCompiler::ElementSizeFor(kTypedDataUint32ArrayCid), |
- RBX, |
- 1); |
- |
+ const intptr_t index_scale = |
+ FlowGraphCompiler::ElementSizeFor(kTypedDataUint32ArrayCid); |
+ const intptr_t offset = |
+ FlowGraphCompiler::DataOffsetFor(kTypedDataUint32ArrayCid); |
+ Address addr_0 = FieldAddress(RBX, 0 * index_scale + offset); |
+ Address addr_1 = FieldAddress(RBX, 1 * index_scale + offset); |
__ movq(RAX, Immediate(a_int_value)); |
__ movl(RCX, addr_0); |
__ imulq(RCX, RAX); |