Commit 3c812247 authored by yangguo@chromium.org's avatar yangguo@chromium.org

Simplify compares in KeyedStoreIC::GenerateGeneric.

Review URL: http://codereview.chromium.org/8068024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9514 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 777df2d8
...@@ -1297,12 +1297,8 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm, ...@@ -1297,12 +1297,8 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm,
__ cmp(r4, Operand(JS_ARRAY_TYPE)); __ cmp(r4, Operand(JS_ARRAY_TYPE));
__ b(eq, &array); __ b(eq, &array);
// Check that the object is some kind of JSObject. // Check that the object is some kind of JSObject.
__ cmp(r4, Operand(FIRST_JS_RECEIVER_TYPE)); __ cmp(r4, Operand(FIRST_JS_OBJECT_TYPE));
__ b(lt, &slow); __ b(lt, &slow);
__ cmp(r4, Operand(JS_PROXY_TYPE));
__ b(eq, &slow);
__ cmp(r4, Operand(JS_FUNCTION_PROXY_TYPE));
__ b(eq, &slow);
// Object case: Check key against length in the elements array. // Object case: Check key against length in the elements array.
__ ldr(elements, FieldMemOperand(receiver, JSObject::kElementsOffset)); __ ldr(elements, FieldMemOperand(receiver, JSObject::kElementsOffset));
......
...@@ -752,12 +752,8 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm, ...@@ -752,12 +752,8 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm,
__ CmpInstanceType(edi, JS_ARRAY_TYPE); __ CmpInstanceType(edi, JS_ARRAY_TYPE);
__ j(equal, &array); __ j(equal, &array);
// Check that the object is some kind of JSObject. // Check that the object is some kind of JSObject.
__ CmpInstanceType(edi, FIRST_JS_RECEIVER_TYPE); __ CmpInstanceType(edi, FIRST_JS_OBJECT_TYPE);
__ j(below, &slow); __ j(below, &slow);
__ CmpInstanceType(edi, JS_PROXY_TYPE);
__ j(equal, &slow);
__ CmpInstanceType(edi, JS_FUNCTION_PROXY_TYPE);
__ j(equal, &slow);
// Object case: Check key against length in the elements array. // Object case: Check key against length in the elements array.
// eax: value // eax: value
......
...@@ -626,12 +626,8 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm, ...@@ -626,12 +626,8 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm,
__ CmpInstanceType(r9, JS_ARRAY_TYPE); __ CmpInstanceType(r9, JS_ARRAY_TYPE);
__ j(equal, &array); __ j(equal, &array);
// Check that the object is some kind of JSObject. // Check that the object is some kind of JSObject.
__ CmpInstanceType(r9, FIRST_JS_RECEIVER_TYPE); __ CmpInstanceType(r9, FIRST_JS_OBJECT_TYPE);
__ j(below, &slow); __ j(below, &slow);
__ CmpInstanceType(r9, JS_PROXY_TYPE);
__ j(equal, &slow);
__ CmpInstanceType(r9, JS_FUNCTION_PROXY_TYPE);
__ j(equal, &slow);
// Object case: Check key against length in the elements array. // Object case: Check key against length in the elements array.
// rax: value // rax: value
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment