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 545c06c1dcca75863909d6641a2e60da4b04b0d2..e083616a6d5dd3c194693502713bfb9a4c4e8169 100644 |
| --- a/src/arm/stub-cache-arm.cc |
| +++ b/src/arm/stub-cache-arm.cc |
| @@ -525,15 +525,10 @@ void StubCompiler::GenerateStoreField(MacroAssembler* masm, |
| void StubCompiler::GenerateLoadMiss(MacroAssembler* masm, Code::Kind kind) { |
| ASSERT(kind == Code::LOAD_IC || kind == Code::KEYED_LOAD_IC); |
| - Code* code = NULL; |
| - if (kind == Code::LOAD_IC) { |
| - code = masm->isolate()->builtins()->builtin(Builtins::kLoadIC_Miss); |
| - } else { |
| - code = masm->isolate()->builtins()->builtin(Builtins::kKeyedLoadIC_Miss); |
| - } |
| - |
| - Handle<Code> ic(code); |
| - __ Jump(ic, RelocInfo::CODE_TARGET); |
| + Handle<Code> code = (kind == Code::LOAD_IC) |
| + ? masm->isolate()->builtins()->LoadIC_Miss() |
| + : masm->isolate()->builtins()->KeyedLoadIC_Miss(); |
|
Kevin Millikin (Chromium)
2011/10/25 11:35:50
We usually just indent this with the regular four
ulan
2011/10/25 12:24:53
Done.
|
| + __ Jump(code, RelocInfo::CODE_TARGET); |
| } |
| @@ -1375,45 +1370,44 @@ Register StubCompiler::CheckPrototypes(JSObject* object, |
| } |
| -void StubCompiler::GenerateLoadField(JSObject* object, |
| - JSObject* holder, |
| +void StubCompiler::GenerateLoadField(Handle<JSObject> object, |
| + Handle<JSObject> holder, |
| Register receiver, |
| Register scratch1, |
| Register scratch2, |
| Register scratch3, |
| int index, |
| - String* name, |
| + Handle<String> name, |
| Label* miss) { |
| // Check that the receiver isn't a smi. |
| __ JumpIfSmi(receiver, miss); |
| // Check that the maps haven't changed. |
| - Register reg = |
| - CheckPrototypes(object, receiver, holder, scratch1, scratch2, scratch3, |
| - name, miss); |
| - GenerateFastPropertyLoad(masm(), r0, reg, Handle<JSObject>(holder), index); |
| + Register reg = CheckPrototypes( |
| + object, receiver, holder, scratch1, scratch2, scratch3, name, miss); |
| + GenerateFastPropertyLoad(masm(), r0, reg, holder, index); |
| __ Ret(); |
| } |
| -void StubCompiler::GenerateLoadConstant(JSObject* object, |
| - JSObject* holder, |
| +void StubCompiler::GenerateLoadConstant(Handle<JSObject> object, |
| + Handle<JSObject> holder, |
| Register receiver, |
| Register scratch1, |
| Register scratch2, |
| Register scratch3, |
| - Object* value, |
| - String* name, |
| + Handle<Object> value, |
| + Handle<String> name, |
| Label* miss) { |
| // Check that the receiver isn't a smi. |
| __ JumpIfSmi(receiver, miss); |
| // Check that the maps haven't changed. |
| - CheckPrototypes(object, receiver, holder, scratch1, scratch2, scratch3, name, |
| - miss); |
| + CheckPrototypes( |
| + object, receiver, holder, scratch1, scratch2, scratch3, name, miss); |
| // Return the constant value. |
| - __ mov(r0, Operand(Handle<Object>(value))); |
| + __ mov(r0, Operand(value)); |
| __ Ret(); |
| } |
| @@ -3003,9 +2997,9 @@ MaybeObject* StoreStubCompiler::CompileStoreGlobal(GlobalObject* object, |
| } |
| -MaybeObject* LoadStubCompiler::CompileLoadNonexistent(String* name, |
| - JSObject* object, |
| - JSObject* last) { |
| +Handle<Code> LoadStubCompiler::CompileLoadNonexistent(Handle<String> name, |
| + Handle<JSObject> object, |
| + Handle<JSObject> last) { |
| // ----------- S t a t e ------------- |
| // -- r0 : receiver |
| // -- lr : return address |
| @@ -3021,15 +3015,8 @@ MaybeObject* LoadStubCompiler::CompileLoadNonexistent(String* name, |
| // If the last object in the prototype chain is a global object, |
| // check that the global property cell is empty. |
| if (last->IsGlobalObject()) { |
| - MaybeObject* cell = TryGenerateCheckPropertyCell(masm(), |
| - GlobalObject::cast(last), |
| - name, |
| - r1, |
| - &miss); |
| - if (cell->IsFailure()) { |
| - miss.Unuse(); |
| - return cell; |
| - } |
| + GenerateCheckPropertyCell( |
| + masm(), Handle<GlobalObject>::cast(last), name, r1, &miss); |
| } |
| // Return undefined if maps of the full prototype chain are still the |
| @@ -3041,14 +3028,14 @@ MaybeObject* LoadStubCompiler::CompileLoadNonexistent(String* name, |
| GenerateLoadMiss(masm(), Code::LOAD_IC); |
| // Return the generated code. |
| - return GetCode(NONEXISTENT, heap()->empty_string()); |
| + return GetCode(NONEXISTENT, factory()->empty_string()); |
| } |
| -MaybeObject* LoadStubCompiler::CompileLoadField(JSObject* object, |
| - JSObject* holder, |
| +Handle<Code> LoadStubCompiler::CompileLoadField(Handle<JSObject> object, |
| + Handle<JSObject> holder, |
| int index, |
| - String* name) { |
| + Handle<String> name) { |
| // ----------- S t a t e ------------- |
| // -- r0 : receiver |
| // -- r2 : name |
| @@ -3091,10 +3078,10 @@ MaybeObject* LoadStubCompiler::CompileLoadCallback(String* name, |
| } |
| -MaybeObject* LoadStubCompiler::CompileLoadConstant(JSObject* object, |
| - JSObject* holder, |
| - Object* value, |
| - String* name) { |
| +Handle<Code> LoadStubCompiler::CompileLoadConstant(Handle<JSObject> object, |
| + Handle<JSObject> holder, |
| + Handle<Object> value, |
| + Handle<String> name) { |
| // ----------- S t a t e ------------- |
| // -- r0 : receiver |
| // -- r2 : name |
| @@ -3188,9 +3175,9 @@ MaybeObject* LoadStubCompiler::CompileLoadGlobal(JSObject* object, |
| } |
| -MaybeObject* KeyedLoadStubCompiler::CompileLoadField(String* name, |
| - JSObject* receiver, |
| - JSObject* holder, |
| +Handle<Code> KeyedLoadStubCompiler::CompileLoadField(Handle<String> name, |
| + Handle<JSObject> receiver, |
| + Handle<JSObject> holder, |
| int index) { |
| // ----------- S t a t e ------------- |
| // -- lr : return address |
| @@ -3200,7 +3187,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadField(String* name, |
| Label miss; |
| // Check the key is the cached one. |
| - __ cmp(r0, Operand(Handle<String>(name))); |
| + __ cmp(r0, Operand(name)); |
| __ b(ne, &miss); |
| GenerateLoadField(receiver, holder, r1, r2, r3, r4, index, name, &miss); |
| @@ -3241,10 +3228,11 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadCallback( |
| } |
| -MaybeObject* KeyedLoadStubCompiler::CompileLoadConstant(String* name, |
| - JSObject* receiver, |
| - JSObject* holder, |
| - Object* value) { |
| +Handle<Code> KeyedLoadStubCompiler::CompileLoadConstant( |
| + Handle<String> name, |
| + Handle<JSObject> receiver, |
| + Handle<JSObject> holder, |
| + Handle<Object> value) { |
| // ----------- S t a t e ------------- |
| // -- lr : return address |
| // -- r0 : key |
| @@ -3253,7 +3241,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadConstant(String* name, |
| Label miss; |
| // Check the key is the cached one. |
| - __ cmp(r0, Operand(Handle<String>(name))); |
| + __ cmp(r0, Operand(name)); |
| __ b(ne, &miss); |
| GenerateLoadConstant(receiver, holder, r1, r2, r3, r4, value, name, &miss); |
| @@ -3298,7 +3286,8 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadInterceptor(JSObject* receiver, |
| } |
| -MaybeObject* KeyedLoadStubCompiler::CompileLoadArrayLength(String* name) { |
| +Handle<Code> KeyedLoadStubCompiler::CompileLoadArrayLength( |
| + Handle<String> name) { |
| // ----------- S t a t e ------------- |
| // -- lr : return address |
| // -- r0 : key |
| @@ -3307,7 +3296,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadArrayLength(String* name) { |
| Label miss; |
| // Check the key is the cached one. |
| - __ cmp(r0, Operand(Handle<String>(name))); |
| + __ cmp(r0, Operand(name)); |
| __ b(ne, &miss); |
| GenerateLoadArrayLength(masm(), r1, r2, &miss); |
| @@ -3318,7 +3307,8 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadArrayLength(String* name) { |
| } |
| -MaybeObject* KeyedLoadStubCompiler::CompileLoadStringLength(String* name) { |
| +Handle<Code> KeyedLoadStubCompiler::CompileLoadStringLength( |
| + Handle<String> name) { |
| // ----------- S t a t e ------------- |
| // -- lr : return address |
| // -- r0 : key |
| @@ -3330,7 +3320,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadStringLength(String* name) { |
| __ IncrementCounter(counters->keyed_load_string_length(), 1, r2, r3); |
| // Check the key is the cached one. |
| - __ cmp(r0, Operand(Handle<String>(name))); |
| + __ cmp(r0, Operand(name)); |
| __ b(ne, &miss); |
| GenerateLoadStringLength(masm(), r1, r2, r3, &miss, true); |
| @@ -3343,7 +3333,8 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadStringLength(String* name) { |
| } |
| -MaybeObject* KeyedLoadStubCompiler::CompileLoadFunctionPrototype(String* name) { |
| +Handle<Code> KeyedLoadStubCompiler::CompileLoadFunctionPrototype( |
| + Handle<String> name) { |
| // ----------- S t a t e ------------- |
| // -- lr : return address |
| // -- r0 : key |
| @@ -3355,7 +3346,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadFunctionPrototype(String* name) { |
| __ IncrementCounter(counters->keyed_load_function_prototype(), 1, r2, r3); |
| // Check the name hasn't changed. |
| - __ cmp(r0, Operand(Handle<String>(name))); |
| + __ cmp(r0, Operand(name)); |
| __ b(ne, &miss); |
| GenerateLoadFunctionPrototype(masm(), r1, r2, r3, &miss); |