Chromium Code Reviews| Index: runtime/vm/flow_graph_compiler_ia32.cc |
| =================================================================== |
| --- runtime/vm/flow_graph_compiler_ia32.cc (revision 36535) |
| +++ runtime/vm/flow_graph_compiler_ia32.cc (working copy) |
| @@ -1539,14 +1539,20 @@ |
| } |
| -Address FlowGraphCompiler::ElementAddressForIntIndex(intptr_t cid, |
| +Address FlowGraphCompiler::ElementAddressForIntIndex(bool is_load, |
|
Florian Schneider
2014/05/23 07:54:16
I don't see is_load used anywhere.
regis
2014/05/23 14:51:05
You will see it being used on ARM in my next cl.
U
|
| + bool is_external, |
| + intptr_t cid, |
| intptr_t index_scale, |
| Register array, |
| intptr_t index) { |
| - const int64_t disp = |
| - static_cast<int64_t>(index) * index_scale + DataOffsetFor(cid); |
| - ASSERT(Utils::IsInt(32, disp)); |
| - return FieldAddress(array, static_cast<int32_t>(disp)); |
| + if (is_external) { |
| + return Address(array, index * index_scale); |
| + } else { |
| + const int64_t disp = |
| + static_cast<int64_t>(index) * index_scale + DataOffsetFor(cid); |
| + ASSERT(Utils::IsInt(32, disp)); |
| + return FieldAddress(array, static_cast<int32_t>(disp)); |
| + } |
| } |
| @@ -1568,33 +1574,23 @@ |
| } |
| -Address FlowGraphCompiler::ElementAddressForRegIndex(intptr_t cid, |
| +Address FlowGraphCompiler::ElementAddressForRegIndex(bool is_load, |
| + bool is_external, |
| + intptr_t cid, |
| intptr_t index_scale, |
| Register array, |
| Register index) { |
| - return FieldAddress(array, |
| - index, |
| - ToScaleFactor(index_scale), |
| - DataOffsetFor(cid)); |
| + if (is_external) { |
| + return Address(array, index, ToScaleFactor(index_scale), 0); |
| + } else { |
| + return FieldAddress(array, |
| + index, |
| + ToScaleFactor(index_scale), |
| + DataOffsetFor(cid)); |
| + } |
| } |
| -Address FlowGraphCompiler::ExternalElementAddressForIntIndex( |
| - intptr_t index_scale, |
| - Register array, |
| - intptr_t index) { |
| - return Address(array, index * index_scale); |
| -} |
| - |
| - |
| -Address FlowGraphCompiler::ExternalElementAddressForRegIndex( |
| - intptr_t index_scale, |
| - Register array, |
| - Register index) { |
| - return Address(array, index, ToScaleFactor(index_scale), 0); |
| -} |
| - |
| - |
| #undef __ |
| #define __ compiler_->assembler()-> |