Chromium Code Reviews| Index: src/x64/stub-cache-x64.cc |
| diff --git a/src/x64/stub-cache-x64.cc b/src/x64/stub-cache-x64.cc |
| index 143d8d8697ee19b159837b8c2896e2b0c4e80eb4..e1f76c3e48ecaf4f1d0dcc70085b27ea581a5bd5 100644 |
| --- a/src/x64/stub-cache-x64.cc |
| +++ b/src/x64/stub-cache-x64.cc |
| @@ -2501,6 +2501,9 @@ MaybeObject* KeyedStoreStubCompiler::CompileStoreFastElement( |
| // -- rdx : receiver |
| // -- rsp[0] : return address |
| // ----------------------------------- |
| + Label miss; |
| + __ JumpIfSmi(rdx, &miss); |
|
Mads Ager (chromium)
2011/05/23 11:34:13
Near jump? And below as well?
|
| + |
| bool is_js_array = receiver_map->instance_type() == JS_ARRAY_TYPE; |
| MaybeObject* maybe_stub = |
| KeyedStoreFastElementStub(is_js_array).TryGetCode(); |
| @@ -2511,6 +2514,7 @@ MaybeObject* KeyedStoreStubCompiler::CompileStoreFastElement( |
| Handle<Code>(stub), |
| DO_SMI_CHECK); |
| + __ bind(&miss); |
| Handle<Code> ic = isolate()->builtins()->KeyedStoreIC_Miss(); |
| __ jmp(ic, RelocInfo::CODE_TARGET); |
| @@ -2959,6 +2963,9 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadFastElement(Map* receiver_map) { |
| // -- rdx : receiver |
| // -- rsp[0] : return address |
| // ----------------------------------- |
| + Label miss; |
| + __ JumpIfSmi(rdx, &miss); |
| + |
| MaybeObject* maybe_stub = KeyedLoadFastElementStub().TryGetCode(); |
| Code* stub; |
| if (!maybe_stub->To(&stub)) return maybe_stub; |
| @@ -2967,6 +2974,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadFastElement(Map* receiver_map) { |
| Handle<Code>(stub), |
| DO_SMI_CHECK); |
| + __ bind(&miss); |
| Handle<Code> ic = isolate()->builtins()->KeyedLoadIC_Miss(); |
| __ jmp(ic, RelocInfo::CODE_TARGET); |