Chromium Code Reviews| Index: src/arm/stub-cache-arm.cc |
| diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc |
| index 47f09dea127427eac3e6b12b6a4d33d8534453fa..61f1ffe5189e1b8ac6f8489d86126b27850c5415 100644 |
| --- a/src/arm/stub-cache-arm.cc |
| +++ b/src/arm/stub-cache-arm.cc |
| @@ -2980,12 +2980,20 @@ Handle<Code> KeyedStoreStubCompiler::CompileStoreElement( |
| // ----------------------------------- |
| ElementsKind elements_kind = receiver_map->elements_kind(); |
| bool is_js_array = receiver_map->instance_type() == JS_ARRAY_TYPE; |
| - Handle<Code> stub = |
| - KeyedStoreElementStub(is_js_array, |
| - elements_kind, |
| - store_mode_).GetCode(isolate()); |
| - |
| - __ DispatchMap(r2, r3, receiver_map, stub, DO_SMI_CHECK); |
| + if (FLAG_compiled_keyed_stores && |
| + (receiver_map->has_fast_elements() || |
| + receiver_map->has_external_array_elements())) { |
| + Handle<Code> stub = KeyedStoreFastElementStub( |
| + is_js_array, |
| + elements_kind, |
| + store_mode_).GetCode(isolate()); |
| + __ DispatchMap(r2, r3, receiver_map, stub, DO_SMI_CHECK); |
| + } else { |
| + Handle<Code> stub = |
| + KeyedStoreElementStub(is_js_array, elements_kind, |
| + store_mode_).GetCode(isolate()); |
| + __ DispatchMap(r2, r3, receiver_map, stub, DO_SMI_CHECK); |
|
Hannes Payer (out of office)
2013/03/20 10:22:35
Can you declare Handle<Code> stube before the if/e
danno
2013/03/20 11:44:10
Done.
|
| + } |
| TailCallBuiltin(masm(), MissBuiltin(kind())); |