Revision: 12366
Author: [email protected]
Date: Wed Aug 22 08:08:48 2012
Log: While finding the valueOf descriptor, only look at the key
entries.
Review URL: https://chromiumcodereview.appspot.com/10870012
http://code.google.com/p/v8/source/detail?r=12366
Modified:
/branches/bleeding_edge/src/arm/full-codegen-arm.cc
/branches/bleeding_edge/src/ia32/full-codegen-ia32.cc
/branches/bleeding_edge/src/mips/full-codegen-mips.cc
/branches/bleeding_edge/src/x64/full-codegen-x64.cc
=======================================
--- /branches/bleeding_edge/src/arm/full-codegen-arm.cc Fri Aug 17 05:59:00
2012
+++ /branches/bleeding_edge/src/arm/full-codegen-arm.cc Wed Aug 22 08:08:48
2012
@@ -2735,8 +2735,7 @@
// Calculate location of the first key name.
__ add(r4,
r4,
- Operand(FixedArray::kHeaderSize - kHeapObjectTag +
- DescriptorArray::kFirstIndex * kPointerSize));
+ Operand(DescriptorArray::kFirstOffset - kHeapObjectTag));
// Loop through all the keys in the descriptor array. If one of these is
the
// symbol valueOf the result is false.
Label entry, loop;
@@ -2748,7 +2747,7 @@
__ ldr(r3, MemOperand(r4, 0));
__ cmp(r3, ip);
__ b(eq, if_false);
- __ add(r4, r4, Operand(kPointerSize));
+ __ add(r4, r4, Operand(DescriptorArray::kDescriptorSize * kPointerSize));
__ bind(&entry);
__ cmp(r4, Operand(r2));
__ b(ne, &loop);
=======================================
--- /branches/bleeding_edge/src/ia32/full-codegen-ia32.cc Fri Aug 17
05:59:00 2012
+++ /branches/bleeding_edge/src/ia32/full-codegen-ia32.cc Wed Aug 22
08:08:48 2012
@@ -2670,9 +2670,7 @@
STATIC_ASSERT(kPointerSize == 4);
__ lea(ecx, Operand(ebx, ecx, times_2, FixedArray::kHeaderSize));
// Calculate location of the first key name.
- __ add(ebx,
- Immediate(FixedArray::kHeaderSize +
- DescriptorArray::kFirstIndex * kPointerSize));
+ __ add(ebx, Immediate(DescriptorArray::kFirstOffset));
// Loop through all the keys in the descriptor array. If one of these is
the
// symbol valueOf the result is false.
Label entry, loop;
@@ -2681,7 +2679,7 @@
__ mov(edx, FieldOperand(ebx, 0));
__ cmp(edx, FACTORY->value_of_symbol());
__ j(equal, if_false);
- __ add(ebx, Immediate(kPointerSize));
+ __ add(ebx, Immediate(DescriptorArray::kDescriptorSize * kPointerSize));
__ bind(&entry);
__ cmp(ebx, ecx);
__ j(not_equal, &loop);
=======================================
--- /branches/bleeding_edge/src/mips/full-codegen-mips.cc Fri Aug 17
05:59:00 2012
+++ /branches/bleeding_edge/src/mips/full-codegen-mips.cc Wed Aug 22
08:08:48 2012
@@ -2767,8 +2767,7 @@
// Calculate location of the first key name.
__ Addu(t0,
t0,
- Operand(FixedArray::kHeaderSize - kHeapObjectTag +
- DescriptorArray::kFirstIndex * kPointerSize));
+ Operand(DescriptorArray::kFirstOffset - kHeapObjectTag));
// Loop through all the keys in the descriptor array. If one of these is
the
// symbol valueOf the result is false.
Label entry, loop;
@@ -2779,7 +2778,7 @@
__ bind(&loop);
__ lw(a3, MemOperand(t0, 0));
__ Branch(if_false, eq, a3, Operand(t2));
- __ Addu(t0, t0, Operand(kPointerSize));
+ __ Addu(t0, t0, Operand(DescriptorArray::kDescriptorSize *
kPointerSize));
__ bind(&entry);
__ Branch(&loop, ne, t0, Operand(a2));
=======================================
--- /branches/bleeding_edge/src/x64/full-codegen-x64.cc Fri Aug 17 05:59:00
2012
+++ /branches/bleeding_edge/src/x64/full-codegen-x64.cc Wed Aug 22 08:08:48
2012
@@ -2642,9 +2642,7 @@
Operand(
rbx, index.reg, index.scale, FixedArray::kHeaderSize));
// Calculate location of the first key name.
- __ addq(rbx,
- Immediate(FixedArray::kHeaderSize +
- DescriptorArray::kFirstIndex * kPointerSize));
+ __ addq(rbx, Immediate(DescriptorArray::kFirstOffset));
// Loop through all the keys in the descriptor array. If one of these is
the
// symbol valueOf the result is false.
Label entry, loop;
@@ -2653,7 +2651,7 @@
__ movq(rdx, FieldOperand(rbx, 0));
__ Cmp(rdx, FACTORY->value_of_symbol());
__ j(equal, if_false);
- __ addq(rbx, Immediate(kPointerSize));
+ __ addq(rbx, Immediate(DescriptorArray::kDescriptorSize * kPointerSize));
__ bind(&entry);
__ cmpq(rbx, rcx);
__ j(not_equal, &loop);
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev