Revision: 24139
Author: [email protected]
Date: Tue Sep 23 09:20:36 2014 UTC
Log: Fix method dispatch in Keyed/StoreIC, and JumpIfNotUniqueName
usage
[email protected]
Review URL: https://codereview.chromium.org/592113002
https://code.google.com/p/v8/source/detail?r=24139
Modified:
/branches/bleeding_edge/src/arm/code-stubs-arm.cc
/branches/bleeding_edge/src/arm/macro-assembler-arm.cc
/branches/bleeding_edge/src/arm/macro-assembler-arm.h
/branches/bleeding_edge/src/arm64/code-stubs-arm64.cc
/branches/bleeding_edge/src/arm64/macro-assembler-arm64.cc
/branches/bleeding_edge/src/arm64/macro-assembler-arm64.h
/branches/bleeding_edge/src/ia32/code-stubs-ia32.cc
/branches/bleeding_edge/src/ia32/macro-assembler-ia32.cc
/branches/bleeding_edge/src/ia32/macro-assembler-ia32.h
/branches/bleeding_edge/src/ic/arm/ic-compiler-arm.cc
/branches/bleeding_edge/src/ic/arm64/ic-compiler-arm64.cc
/branches/bleeding_edge/src/ic/ia32/ic-compiler-ia32.cc
/branches/bleeding_edge/src/ic/ic.cc
/branches/bleeding_edge/src/ic/ic.h
/branches/bleeding_edge/src/ic/mips/ic-compiler-mips.cc
/branches/bleeding_edge/src/ic/mips64/ic-compiler-mips64.cc
/branches/bleeding_edge/src/ic/x64/ic-compiler-x64.cc
/branches/bleeding_edge/src/ic/x87/ic-compiler-x87.cc
/branches/bleeding_edge/src/mips/code-stubs-mips.cc
/branches/bleeding_edge/src/mips/macro-assembler-mips.cc
/branches/bleeding_edge/src/mips/macro-assembler-mips.h
/branches/bleeding_edge/src/mips64/code-stubs-mips64.cc
/branches/bleeding_edge/src/mips64/macro-assembler-mips64.cc
/branches/bleeding_edge/src/mips64/macro-assembler-mips64.h
/branches/bleeding_edge/src/x64/code-stubs-x64.cc
/branches/bleeding_edge/src/x64/macro-assembler-x64.cc
/branches/bleeding_edge/src/x64/macro-assembler-x64.h
/branches/bleeding_edge/src/x87/code-stubs-x87.cc
/branches/bleeding_edge/src/x87/macro-assembler-x87.cc
/branches/bleeding_edge/src/x87/macro-assembler-x87.h
=======================================
--- /branches/bleeding_edge/src/arm/code-stubs-arm.cc Thu Sep 18 13:28:32
2014 UTC
+++ /branches/bleeding_edge/src/arm/code-stubs-arm.cc Tue Sep 23 09:20:36
2014 UTC
@@ -3465,8 +3465,8 @@
__ ldrb(tmp1, FieldMemOperand(tmp1, Map::kInstanceTypeOffset));
__ ldrb(tmp2, FieldMemOperand(tmp2, Map::kInstanceTypeOffset));
- __ JumpIfNotUniqueName(tmp1, &miss);
- __ JumpIfNotUniqueName(tmp2, &miss);
+ __ JumpIfNotUniqueNameInstanceType(tmp1, &miss);
+ __ JumpIfNotUniqueNameInstanceType(tmp2, &miss);
// Unique names are compared by identity.
__ cmp(left, right);
@@ -3698,7 +3698,7 @@
__ ldr(entity_name, FieldMemOperand(entity_name,
HeapObject::kMapOffset));
__ ldrb(entity_name,
FieldMemOperand(entity_name, Map::kInstanceTypeOffset));
- __ JumpIfNotUniqueName(entity_name, miss);
+ __ JumpIfNotUniqueNameInstanceType(entity_name, miss);
__ bind(&good);
// Restore the properties.
@@ -3868,7 +3868,7 @@
__ ldr(entry_key, FieldMemOperand(entry_key,
HeapObject::kMapOffset));
__ ldrb(entry_key,
FieldMemOperand(entry_key, Map::kInstanceTypeOffset));
- __ JumpIfNotUniqueName(entry_key, &maybe_in_dictionary);
+ __ JumpIfNotUniqueNameInstanceType(entry_key, &maybe_in_dictionary);
}
}
=======================================
--- /branches/bleeding_edge/src/arm/macro-assembler-arm.cc Wed Sep 10
12:38:12 2014 UTC
+++ /branches/bleeding_edge/src/arm/macro-assembler-arm.cc Tue Sep 23
09:20:36 2014 UTC
@@ -3199,8 +3199,8 @@
}
-void MacroAssembler::JumpIfNotUniqueName(Register reg,
- Label* not_unique_name) {
+void MacroAssembler::JumpIfNotUniqueNameInstanceType(Register reg,
+ Label*
not_unique_name) {
STATIC_ASSERT(kInternalizedTag == 0 && kStringTag == 0);
Label succeed;
tst(reg, Operand(kIsNotStringMask | kIsNotInternalizedMask));
=======================================
--- /branches/bleeding_edge/src/arm/macro-assembler-arm.h Wed Sep 10
12:38:12 2014 UTC
+++ /branches/bleeding_edge/src/arm/macro-assembler-arm.h Tue Sep 23
09:20:36 2014 UTC
@@ -1340,7 +1340,7 @@
void JumpIfInstanceTypeIsNotSequentialOneByte(Register type, Register
scratch,
Label* failure);
- void JumpIfNotUniqueName(Register reg, Label* not_unique_name);
+ void JumpIfNotUniqueNameInstanceType(Register reg, Label*
not_unique_name);
void EmitSeqStringSetCharCheck(Register string,
Register index,
=======================================
--- /branches/bleeding_edge/src/arm64/code-stubs-arm64.cc Thu Sep 18
13:28:32 2014 UTC
+++ /branches/bleeding_edge/src/arm64/code-stubs-arm64.cc Tue Sep 23
09:20:36 2014 UTC
@@ -3370,8 +3370,8 @@
// To avoid a miss, each instance type should be either SYMBOL_TYPE or it
// should have kInternalizedTag set.
- __ JumpIfNotUniqueName(lhs_instance_type, &miss);
- __ JumpIfNotUniqueName(rhs_instance_type, &miss);
+ __ JumpIfNotUniqueNameInstanceType(lhs_instance_type, &miss);
+ __ JumpIfNotUniqueNameInstanceType(rhs_instance_type, &miss);
// Unique names are compared by identity.
STATIC_ASSERT(EQUAL == 0);
@@ -4488,7 +4488,7 @@
__ Ldr(entity_name, FieldMemOperand(entity_name,
HeapObject::kMapOffset));
__ Ldrb(entity_name,
FieldMemOperand(entity_name, Map::kInstanceTypeOffset));
- __ JumpIfNotUniqueName(entity_name, miss);
+ __ JumpIfNotUniqueNameInstanceType(entity_name, miss);
__ Bind(&good);
}
@@ -4575,7 +4575,7 @@
// Check if the entry name is not a unique name.
__ Ldr(entry_key, FieldMemOperand(entry_key,
HeapObject::kMapOffset));
__ Ldrb(entry_key, FieldMemOperand(entry_key,
Map::kInstanceTypeOffset));
- __ JumpIfNotUniqueName(entry_key, &maybe_in_dictionary);
+ __ JumpIfNotUniqueNameInstanceType(entry_key, &maybe_in_dictionary);
}
}
=======================================
--- /branches/bleeding_edge/src/arm64/macro-assembler-arm64.cc Tue Sep 16
10:42:09 2014 UTC
+++ /branches/bleeding_edge/src/arm64/macro-assembler-arm64.cc Tue Sep 23
09:20:36 2014 UTC
@@ -2768,8 +2768,8 @@
}
-void MacroAssembler::JumpIfNotUniqueName(Register type,
- Label* not_unique_name) {
+void MacroAssembler::JumpIfNotUniqueNameInstanceType(Register type,
+ Label*
not_unique_name) {
STATIC_ASSERT((kInternalizedTag == 0) && (kStringTag == 0));
// if ((type is string && type is internalized) || type == SYMBOL_TYPE) {
// continue
=======================================
--- /branches/bleeding_edge/src/arm64/macro-assembler-arm64.h Tue Sep 16
10:42:09 2014 UTC
+++ /branches/bleeding_edge/src/arm64/macro-assembler-arm64.h Tue Sep 23
09:20:36 2014 UTC
@@ -1074,7 +1074,7 @@
Register first_object_instance_type, Register
second_object_instance_type,
Register scratch1, Register scratch2, Label* failure);
- void JumpIfNotUniqueName(Register type, Label* not_unique_name);
+ void JumpIfNotUniqueNameInstanceType(Register type, Label*
not_unique_name);
// ---- Calling / Jumping helpers ----
=======================================
--- /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Thu Sep 18 13:28:32
2014 UTC
+++ /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Tue Sep 23 09:20:36
2014 UTC
@@ -3502,8 +3502,8 @@
__ movzx_b(tmp1, FieldOperand(tmp1, Map::kInstanceTypeOffset));
__ movzx_b(tmp2, FieldOperand(tmp2, Map::kInstanceTypeOffset));
- __ JumpIfNotUniqueName(tmp1, &miss, Label::kNear);
- __ JumpIfNotUniqueName(tmp2, &miss, Label::kNear);
+ __ JumpIfNotUniqueNameInstanceType(tmp1, &miss, Label::kNear);
+ __ JumpIfNotUniqueNameInstanceType(tmp2, &miss, Label::kNear);
// Unique names are compared by identity.
Label done;
@@ -3728,8 +3728,8 @@
// Check if the entry name is not a unique name.
__ mov(entity_name, FieldOperand(entity_name, HeapObject::kMapOffset));
- __ JumpIfNotUniqueName(FieldOperand(entity_name,
Map::kInstanceTypeOffset),
- miss);
+ __ JumpIfNotUniqueNameInstanceType(
+ FieldOperand(entity_name, Map::kInstanceTypeOffset), miss);
__ bind(&good);
}
@@ -3863,8 +3863,9 @@
// Check if the entry name is not a unique name.
__ mov(scratch, FieldOperand(scratch, HeapObject::kMapOffset));
- __ JumpIfNotUniqueName(FieldOperand(scratch,
Map::kInstanceTypeOffset),
- &maybe_in_dictionary);
+ __ JumpIfNotUniqueNameInstanceType(
+ FieldOperand(scratch, Map::kInstanceTypeOffset),
+ &maybe_in_dictionary);
}
}
=======================================
--- /branches/bleeding_edge/src/ia32/macro-assembler-ia32.cc Wed Sep 17
09:51:17 2014 UTC
+++ /branches/bleeding_edge/src/ia32/macro-assembler-ia32.cc Tue Sep 23
09:20:36 2014 UTC
@@ -2917,9 +2917,9 @@
}
-void MacroAssembler::JumpIfNotUniqueName(Operand operand,
- Label* not_unique_name,
- Label::Distance distance) {
+void MacroAssembler::JumpIfNotUniqueNameInstanceType(Operand operand,
+ Label*
not_unique_name,
+ Label::Distance
distance) {
STATIC_ASSERT(kInternalizedTag == 0 && kStringTag == 0);
Label succeed;
test(operand, Immediate(kIsNotStringMask | kIsNotInternalizedMask));
=======================================
--- /branches/bleeding_edge/src/ia32/macro-assembler-ia32.h Wed Sep 17
09:51:17 2014 UTC
+++ /branches/bleeding_edge/src/ia32/macro-assembler-ia32.h Tue Sep 23
09:20:36 2014 UTC
@@ -915,13 +915,13 @@
Label* on_not_flat_one_byte_strings);
// Checks if the given register or operand is a unique name
- void JumpIfNotUniqueName(Register reg, Label* not_unique_name,
- Label::Distance distance = Label::kFar) {
- JumpIfNotUniqueName(Operand(reg), not_unique_name, distance);
+ void JumpIfNotUniqueNameInstanceType(Register reg, Label*
not_unique_name,
+ Label::Distance distance =
Label::kFar) {
+ JumpIfNotUniqueNameInstanceType(Operand(reg), not_unique_name,
distance);
}
- void JumpIfNotUniqueName(Operand operand, Label* not_unique_name,
- Label::Distance distance = Label::kFar);
+ void JumpIfNotUniqueNameInstanceType(Operand operand, Label*
not_unique_name,
+ Label::Distance distance =
Label::kFar);
void EmitSeqStringSetCharCheck(Register string,
Register index,
=======================================
--- /branches/bleeding_edge/src/ic/arm/ic-compiler-arm.cc Tue Sep 16
12:51:33 2014 UTC
+++ /branches/bleeding_edge/src/ic/arm/ic-compiler-arm.cc Tue Sep 23
09:20:36 2014 UTC
@@ -44,7 +44,11 @@
// In case we are compiling an IC for dictionary loads and stores, just
// check whether the name is unique.
if (name.is_identical_to(isolate()->factory()->normal_ic_symbol())) {
- __ JumpIfNotUniqueName(this->name(), &miss);
+ Register tmp = scratch1();
+ __ JumpIfSmi(this->name(), &miss);
+ __ ldr(tmp, FieldMemOperand(this->name(), HeapObject::kMapOffset));
+ __ ldrb(tmp, FieldMemOperand(tmp, Map::kInstanceTypeOffset));
+ __ JumpIfNotUniqueNameInstanceType(tmp, &miss);
} else {
__ cmp(this->name(), Operand(name));
__ b(ne, &miss);
=======================================
--- /branches/bleeding_edge/src/ic/arm64/ic-compiler-arm64.cc Tue Sep 16
12:51:33 2014 UTC
+++ /branches/bleeding_edge/src/ic/arm64/ic-compiler-arm64.cc Tue Sep 23
09:20:36 2014 UTC
@@ -45,7 +45,11 @@
// In case we are compiling an IC for dictionary loads and stores, just
// check whether the name is unique.
if (name.is_identical_to(isolate()->factory()->normal_ic_symbol())) {
- __ JumpIfNotUniqueName(this->name(), &miss);
+ Register tmp = scratch1();
+ __ JumpIfSmi(this->name(), &miss);
+ __ Ldr(tmp, FieldMemOperand(this->name(), HeapObject::kMapOffset));
+ __ Ldrb(tmp, FieldMemOperand(tmp, Map::kInstanceTypeOffset));
+ __ JumpIfNotUniqueNameInstanceType(tmp, &miss);
} else {
__ CompareAndBranch(this->name(), Operand(name), ne, &miss);
}
=======================================
--- /branches/bleeding_edge/src/ic/ia32/ic-compiler-ia32.cc Tue Sep 16
12:51:33 2014 UTC
+++ /branches/bleeding_edge/src/ic/ia32/ic-compiler-ia32.cc Tue Sep 23
09:20:36 2014 UTC
@@ -48,7 +48,11 @@
// In case we are compiling an IC for dictionary loads and stores, just
// check whether the name is unique.
if (name.is_identical_to(isolate()->factory()->normal_ic_symbol())) {
- __ JumpIfNotUniqueName(this->name(), &miss);
+ Register tmp = scratch1();
+ __ JumpIfSmi(this->name(), &miss);
+ __ mov(tmp, FieldOperand(this->name(), HeapObject::kMapOffset));
+ __ movzx_b(tmp, FieldOperand(tmp, Map::kInstanceTypeOffset));
+ __ JumpIfNotUniqueNameInstanceType(tmp, &miss);
} else {
__ cmp(this->name(), Immediate(name));
__ j(not_equal, &miss);
=======================================
--- /branches/bleeding_edge/src/ic/ic.cc Mon Sep 22 13:23:27 2014 UTC
+++ /branches/bleeding_edge/src/ic/ic.cc Tue Sep 23 09:20:36 2014 UTC
@@ -1346,13 +1346,42 @@
Handle<Code> StoreIC::megamorphic_stub() {
- return PropertyICCompiler::ComputeStore(isolate(), MEGAMORPHIC,
- extra_ic_state());
+ if (kind() == Code::STORE_IC) {
+ return PropertyICCompiler::ComputeStore(isolate(), MEGAMORPHIC,
+ extra_ic_state());
+ } else {
+ DCHECK(kind() == Code::KEYED_STORE_IC);
+ if (strict_mode() == STRICT) {
+ return isolate()->builtins()->KeyedStoreIC_Generic_Strict();
+ } else {
+ return isolate()->builtins()->KeyedStoreIC_Generic();
+ }
+ }
}
Handle<Code> StoreIC::generic_stub() const {
- return PropertyICCompiler::ComputeStore(isolate(), GENERIC,
extra_ic_state());
+ if (kind() == Code::STORE_IC) {
+ return PropertyICCompiler::ComputeStore(isolate(), GENERIC,
+ extra_ic_state());
+ } else {
+ DCHECK(kind() == Code::KEYED_STORE_IC);
+ if (strict_mode() == STRICT) {
+ return isolate()->builtins()->KeyedStoreIC_Generic_Strict();
+ } else {
+ return isolate()->builtins()->KeyedStoreIC_Generic();
+ }
+ }
+}
+
+
+Handle<Code> StoreIC::slow_stub() const {
+ if (kind() == Code::STORE_IC) {
+ return isolate()->builtins()->StoreIC_Slow();
+ } else {
+ DCHECK(kind() == Code::KEYED_STORE_IC);
+ return isolate()->builtins()->KeyedStoreIC_Slow();
+ }
}
=======================================
--- /branches/bleeding_edge/src/ic/ic.h Mon Sep 22 13:23:27 2014 UTC
+++ /branches/bleeding_edge/src/ic/ic.h Tue Sep 23 09:20:36 2014 UTC
@@ -371,7 +371,7 @@
}
}
- virtual Handle<Code> megamorphic_stub();
+ virtual Handle<Code> megamorphic_stub() OVERRIDE;
// Update the inline cache and the global stub cache based on the
// lookup result.
@@ -489,14 +489,12 @@
JSReceiver::StoreFromKeyed store_mode);
protected:
- virtual Handle<Code> megamorphic_stub();
+ virtual Handle<Code> megamorphic_stub() OVERRIDE;
// Stub accessors.
- virtual Handle<Code> generic_stub() const;
+ Handle<Code> generic_stub() const;
- virtual Handle<Code> slow_stub() const {
- return isolate()->builtins()->StoreIC_Slow();
- }
+ Handle<Code> slow_stub() const;
virtual Handle<Code> pre_monomorphic_stub() const {
return pre_monomorphic_stub(isolate(), strict_mode());
@@ -577,16 +575,6 @@
return isolate->builtins()->KeyedStoreIC_PreMonomorphic();
}
}
- virtual Handle<Code> slow_stub() const {
- return isolate()->builtins()->KeyedStoreIC_Slow();
- }
- virtual Handle<Code> megamorphic_stub() {
- if (strict_mode() == STRICT) {
- return isolate()->builtins()->KeyedStoreIC_Generic_Strict();
- } else {
- return isolate()->builtins()->KeyedStoreIC_Generic();
- }
- }
Handle<Code> StoreElementStub(Handle<JSObject> receiver,
KeyedAccessStoreMode store_mode);
@@ -595,14 +583,6 @@
inline void set_target(Code* code);
// Stub accessors.
- virtual Handle<Code> generic_stub() const {
- if (strict_mode() == STRICT) {
- return isolate()->builtins()->KeyedStoreIC_Generic_Strict();
- } else {
- return isolate()->builtins()->KeyedStoreIC_Generic();
- }
- }
-
Handle<Code> sloppy_arguments_stub() {
return isolate()->builtins()->KeyedStoreIC_SloppyArguments();
}
=======================================
--- /branches/bleeding_edge/src/ic/mips/ic-compiler-mips.cc Tue Sep 16
12:51:33 2014 UTC
+++ /branches/bleeding_edge/src/ic/mips/ic-compiler-mips.cc Tue Sep 23
09:20:36 2014 UTC
@@ -27,7 +27,11 @@
// In case we are compiling an IC for dictionary loads and stores, just
// check whether the name is unique.
if (name.is_identical_to(isolate()->factory()->normal_ic_symbol())) {
- __ JumpIfNotUniqueName(this->name(), &miss);
+ Register tmp = scratch1();
+ __ JumpIfSmi(this->name(), &miss);
+ __ lw(tmp, FieldMemOperand(this->name(), HeapObject::kMapOffset));
+ __ lbu(tmp, FieldMemOperand(tmp, Map::kInstanceTypeOffset));
+ __ JumpIfNotUniqueNameInstanceType(tmp, &miss);
} else {
__ Branch(&miss, ne, this->name(), Operand(name));
}
=======================================
--- /branches/bleeding_edge/src/ic/mips64/ic-compiler-mips64.cc Tue Sep 16
17:59:41 2014 UTC
+++ /branches/bleeding_edge/src/ic/mips64/ic-compiler-mips64.cc Tue Sep 23
09:20:36 2014 UTC
@@ -27,7 +27,11 @@
// In case we are compiling an IC for dictionary loads and stores, just
// check whether the name is unique.
if (name.is_identical_to(isolate()->factory()->normal_ic_symbol())) {
- __ JumpIfNotUniqueName(this->name(), &miss);
+ Register tmp = scratch1();
+ __ JumpIfSmi(this->name(), &miss);
+ __ ld(tmp, FieldMemOperand(this->name(), HeapObject::kMapOffset));
+ __ lbu(tmp, FieldMemOperand(tmp, Map::kInstanceTypeOffset));
+ __ JumpIfNotUniqueNameInstanceType(tmp, &miss);
} else {
__ Branch(&miss, ne, this->name(), Operand(name));
}
=======================================
--- /branches/bleeding_edge/src/ic/x64/ic-compiler-x64.cc Tue Sep 16
12:51:33 2014 UTC
+++ /branches/bleeding_edge/src/ic/x64/ic-compiler-x64.cc Tue Sep 23
09:20:36 2014 UTC
@@ -82,7 +82,11 @@
// In case we are compiling an IC for dictionary loads and stores, just
// check whether the name is unique.
if (name.is_identical_to(isolate()->factory()->normal_ic_symbol())) {
- __ JumpIfNotUniqueName(this->name(), &miss);
+ Register tmp = scratch1();
+ __ JumpIfSmi(this->name(), &miss);
+ __ movp(tmp, FieldOperand(this->name(), HeapObject::kMapOffset));
+ __ movzxbp(tmp, FieldOperand(tmp, Map::kInstanceTypeOffset));
+ __ JumpIfNotUniqueNameInstanceType(tmp, &miss);
} else {
__ Cmp(this->name(), name);
__ j(not_equal, &miss);
=======================================
--- /branches/bleeding_edge/src/ic/x87/ic-compiler-x87.cc Wed Sep 17
05:21:36 2014 UTC
+++ /branches/bleeding_edge/src/ic/x87/ic-compiler-x87.cc Tue Sep 23
09:20:36 2014 UTC
@@ -48,7 +48,11 @@
// In case we are compiling an IC for dictionary loads and stores, just
// check whether the name is unique.
if (name.is_identical_to(isolate()->factory()->normal_ic_symbol())) {
- __ JumpIfNotUniqueName(this->name(), &miss);
+ Register tmp = scratch1();
+ __ JumpIfSmi(this->name(), &miss);
+ __ mov(tmp, FieldOperand(this->name(), HeapObject::kMapOffset));
+ __ movzx_b(tmp, FieldOperand(tmp, Map::kInstanceTypeOffset));
+ __ JumpIfNotUniqueNameInstanceType(tmp, &miss);
} else {
__ cmp(this->name(), Immediate(name));
__ j(not_equal, &miss);
=======================================
--- /branches/bleeding_edge/src/mips/code-stubs-mips.cc Thu Sep 18 13:28:32
2014 UTC
+++ /branches/bleeding_edge/src/mips/code-stubs-mips.cc Tue Sep 23 09:20:36
2014 UTC
@@ -3644,8 +3644,8 @@
__ lbu(tmp1, FieldMemOperand(tmp1, Map::kInstanceTypeOffset));
__ lbu(tmp2, FieldMemOperand(tmp2, Map::kInstanceTypeOffset));
- __ JumpIfNotUniqueName(tmp1, &miss);
- __ JumpIfNotUniqueName(tmp2, &miss);
+ __ JumpIfNotUniqueNameInstanceType(tmp1, &miss);
+ __ JumpIfNotUniqueNameInstanceType(tmp2, &miss);
// Use a0 as result
__ mov(v0, a0);
@@ -3899,7 +3899,7 @@
__ lw(entity_name, FieldMemOperand(entity_name,
HeapObject::kMapOffset));
__ lbu(entity_name,
FieldMemOperand(entity_name, Map::kInstanceTypeOffset));
- __ JumpIfNotUniqueName(entity_name, miss);
+ __ JumpIfNotUniqueNameInstanceType(entity_name, miss);
__ bind(&good);
// Restore the properties.
@@ -4076,7 +4076,7 @@
__ lw(entry_key, FieldMemOperand(entry_key, HeapObject::kMapOffset));
__ lbu(entry_key,
FieldMemOperand(entry_key, Map::kInstanceTypeOffset));
- __ JumpIfNotUniqueName(entry_key, &maybe_in_dictionary);
+ __ JumpIfNotUniqueNameInstanceType(entry_key, &maybe_in_dictionary);
}
}
=======================================
--- /branches/bleeding_edge/src/mips/macro-assembler-mips.cc Wed Sep 10
19:18:28 2014 UTC
+++ /branches/bleeding_edge/src/mips/macro-assembler-mips.cc Tue Sep 23
09:20:36 2014 UTC
@@ -3582,8 +3582,8 @@
}
-void MacroAssembler::JumpIfNotUniqueName(Register reg,
- Label* not_unique_name) {
+void MacroAssembler::JumpIfNotUniqueNameInstanceType(Register reg,
+ Label*
not_unique_name) {
STATIC_ASSERT(kInternalizedTag == 0 && kStringTag == 0);
Label succeed;
And(at, reg, Operand(kIsNotStringMask | kIsNotInternalizedMask));
=======================================
--- /branches/bleeding_edge/src/mips/macro-assembler-mips.h Wed Sep 10
19:18:28 2014 UTC
+++ /branches/bleeding_edge/src/mips/macro-assembler-mips.h Tue Sep 23
09:20:36 2014 UTC
@@ -1483,7 +1483,7 @@
void JumpIfInstanceTypeIsNotSequentialOneByte(Register type, Register
scratch,
Label* failure);
- void JumpIfNotUniqueName(Register reg, Label* not_unique_name);
+ void JumpIfNotUniqueNameInstanceType(Register reg, Label*
not_unique_name);
void EmitSeqStringSetCharCheck(Register string,
Register index,
=======================================
--- /branches/bleeding_edge/src/mips64/code-stubs-mips64.cc Thu Sep 18
15:38:52 2014 UTC
+++ /branches/bleeding_edge/src/mips64/code-stubs-mips64.cc Tue Sep 23
09:20:36 2014 UTC
@@ -3681,8 +3681,8 @@
__ lbu(tmp1, FieldMemOperand(tmp1, Map::kInstanceTypeOffset));
__ lbu(tmp2, FieldMemOperand(tmp2, Map::kInstanceTypeOffset));
- __ JumpIfNotUniqueName(tmp1, &miss);
- __ JumpIfNotUniqueName(tmp2, &miss);
+ __ JumpIfNotUniqueNameInstanceType(tmp1, &miss);
+ __ JumpIfNotUniqueNameInstanceType(tmp2, &miss);
// Use a0 as result
__ mov(v0, a0);
@@ -3937,7 +3937,7 @@
__ ld(entity_name, FieldMemOperand(entity_name,
HeapObject::kMapOffset));
__ lbu(entity_name,
FieldMemOperand(entity_name, Map::kInstanceTypeOffset));
- __ JumpIfNotUniqueName(entity_name, miss);
+ __ JumpIfNotUniqueNameInstanceType(entity_name, miss);
__ bind(&good);
// Restore the properties.
@@ -4114,7 +4114,7 @@
__ ld(entry_key, FieldMemOperand(entry_key, HeapObject::kMapOffset));
__ lbu(entry_key,
FieldMemOperand(entry_key, Map::kInstanceTypeOffset));
- __ JumpIfNotUniqueName(entry_key, &maybe_in_dictionary);
+ __ JumpIfNotUniqueNameInstanceType(entry_key, &maybe_in_dictionary);
}
}
=======================================
--- /branches/bleeding_edge/src/mips64/macro-assembler-mips64.cc Wed Sep 10
19:18:28 2014 UTC
+++ /branches/bleeding_edge/src/mips64/macro-assembler-mips64.cc Tue Sep 23
09:20:36 2014 UTC
@@ -3492,8 +3492,8 @@
}
-void MacroAssembler::JumpIfNotUniqueName(Register reg,
- Label* not_unique_name) {
+void MacroAssembler::JumpIfNotUniqueNameInstanceType(Register reg,
+ Label*
not_unique_name) {
STATIC_ASSERT(kInternalizedTag == 0 && kStringTag == 0);
Label succeed;
And(at, reg, Operand(kIsNotStringMask | kIsNotInternalizedMask));
=======================================
--- /branches/bleeding_edge/src/mips64/macro-assembler-mips64.h Wed Sep 10
19:18:28 2014 UTC
+++ /branches/bleeding_edge/src/mips64/macro-assembler-mips64.h Tue Sep 23
09:20:36 2014 UTC
@@ -1554,7 +1554,7 @@
void JumpIfInstanceTypeIsNotSequentialOneByte(Register type, Register
scratch,
Label* failure);
- void JumpIfNotUniqueName(Register reg, Label* not_unique_name);
+ void JumpIfNotUniqueNameInstanceType(Register reg, Label*
not_unique_name);
void EmitSeqStringSetCharCheck(Register string,
Register index,
=======================================
--- /branches/bleeding_edge/src/x64/code-stubs-x64.cc Thu Sep 18 13:28:32
2014 UTC
+++ /branches/bleeding_edge/src/x64/code-stubs-x64.cc Tue Sep 23 09:20:36
2014 UTC
@@ -3454,8 +3454,8 @@
__ movzxbp(tmp1, FieldOperand(tmp1, Map::kInstanceTypeOffset));
__ movzxbp(tmp2, FieldOperand(tmp2, Map::kInstanceTypeOffset));
- __ JumpIfNotUniqueName(tmp1, &miss, Label::kNear);
- __ JumpIfNotUniqueName(tmp2, &miss, Label::kNear);
+ __ JumpIfNotUniqueNameInstanceType(tmp1, &miss, Label::kNear);
+ __ JumpIfNotUniqueNameInstanceType(tmp2, &miss, Label::kNear);
// Unique names are compared by identity.
Label done;
@@ -3674,8 +3674,8 @@
// Check if the entry name is not a unique name.
__ movp(entity_name, FieldOperand(entity_name,
HeapObject::kMapOffset));
- __ JumpIfNotUniqueName(FieldOperand(entity_name,
Map::kInstanceTypeOffset),
- miss);
+ __ JumpIfNotUniqueNameInstanceType(
+ FieldOperand(entity_name, Map::kInstanceTypeOffset), miss);
__ bind(&good);
}
@@ -3804,8 +3804,9 @@
// Check if the entry name is not a unique name.
__ movp(scratch, FieldOperand(scratch, HeapObject::kMapOffset));
- __ JumpIfNotUniqueName(FieldOperand(scratch,
Map::kInstanceTypeOffset),
- &maybe_in_dictionary);
+ __ JumpIfNotUniqueNameInstanceType(
+ FieldOperand(scratch, Map::kInstanceTypeOffset),
+ &maybe_in_dictionary);
}
}
=======================================
--- /branches/bleeding_edge/src/x64/macro-assembler-x64.cc Wed Sep 17
09:51:17 2014 UTC
+++ /branches/bleeding_edge/src/x64/macro-assembler-x64.cc Tue Sep 23
09:20:36 2014 UTC
@@ -2701,16 +2701,16 @@
}
-void MacroAssembler::JumpIfNotUniqueName(Operand operand,
- Label* not_unique_name,
- Label::Distance distance) {
+void MacroAssembler::JumpIfNotUniqueNameInstanceType(Operand operand,
+ Label*
not_unique_name,
+ Label::Distance
distance) {
JumpIfNotUniqueNameHelper<Operand>(this, operand, not_unique_name,
distance);
}
-void MacroAssembler::JumpIfNotUniqueName(Register reg,
- Label* not_unique_name,
- Label::Distance distance) {
+void MacroAssembler::JumpIfNotUniqueNameInstanceType(Register reg,
+ Label*
not_unique_name,
+ Label::Distance
distance) {
JumpIfNotUniqueNameHelper<Register>(this, reg, not_unique_name,
distance);
}
=======================================
--- /branches/bleeding_edge/src/x64/macro-assembler-x64.h Wed Sep 17
09:51:17 2014 UTC
+++ /branches/bleeding_edge/src/x64/macro-assembler-x64.h Tue Sep 23
09:20:36 2014 UTC
@@ -797,10 +797,10 @@
uint32_t encoding_mask);
// Checks if the given register or operand is a unique name
- void JumpIfNotUniqueName(Register reg, Label* not_unique_name,
- Label::Distance distance = Label::kFar);
- void JumpIfNotUniqueName(Operand operand, Label* not_unique_name,
- Label::Distance distance = Label::kFar);
+ void JumpIfNotUniqueNameInstanceType(Register reg, Label*
not_unique_name,
+ Label::Distance distance =
Label::kFar);
+ void JumpIfNotUniqueNameInstanceType(Operand operand, Label*
not_unique_name,
+ Label::Distance distance =
Label::kFar);
//
---------------------------------------------------------------------------
// Macro instructions.
=======================================
--- /branches/bleeding_edge/src/x87/code-stubs-x87.cc Sat Sep 20 05:08:58
2014 UTC
+++ /branches/bleeding_edge/src/x87/code-stubs-x87.cc Tue Sep 23 09:20:36
2014 UTC
@@ -3167,8 +3167,8 @@
__ movzx_b(tmp1, FieldOperand(tmp1, Map::kInstanceTypeOffset));
__ movzx_b(tmp2, FieldOperand(tmp2, Map::kInstanceTypeOffset));
- __ JumpIfNotUniqueName(tmp1, &miss, Label::kNear);
- __ JumpIfNotUniqueName(tmp2, &miss, Label::kNear);
+ __ JumpIfNotUniqueNameInstanceType(tmp1, &miss, Label::kNear);
+ __ JumpIfNotUniqueNameInstanceType(tmp2, &miss, Label::kNear);
// Unique names are compared by identity.
Label done;
@@ -3393,8 +3393,8 @@
// Check if the entry name is not a unique name.
__ mov(entity_name, FieldOperand(entity_name, HeapObject::kMapOffset));
- __ JumpIfNotUniqueName(FieldOperand(entity_name,
Map::kInstanceTypeOffset),
- miss);
+ __ JumpIfNotUniqueNameInstanceType(
+ FieldOperand(entity_name, Map::kInstanceTypeOffset), miss);
__ bind(&good);
}
@@ -3528,8 +3528,9 @@
// Check if the entry name is not a unique name.
__ mov(scratch, FieldOperand(scratch, HeapObject::kMapOffset));
- __ JumpIfNotUniqueName(FieldOperand(scratch,
Map::kInstanceTypeOffset),
- &maybe_in_dictionary);
+ __ JumpIfNotUniqueNameInstanceType(
+ FieldOperand(scratch, Map::kInstanceTypeOffset),
+ &maybe_in_dictionary);
}
}
=======================================
--- /branches/bleeding_edge/src/x87/macro-assembler-x87.cc Sat Sep 20
05:08:58 2014 UTC
+++ /branches/bleeding_edge/src/x87/macro-assembler-x87.cc Tue Sep 23
09:20:36 2014 UTC
@@ -2869,9 +2869,9 @@
}
-void MacroAssembler::JumpIfNotUniqueName(Operand operand,
- Label* not_unique_name,
- Label::Distance distance) {
+void MacroAssembler::JumpIfNotUniqueNameInstanceType(Operand operand,
+ Label*
not_unique_name,
+ Label::Distance
distance) {
STATIC_ASSERT(kInternalizedTag == 0 && kStringTag == 0);
Label succeed;
test(operand, Immediate(kIsNotStringMask | kIsNotInternalizedMask));
=======================================
--- /branches/bleeding_edge/src/x87/macro-assembler-x87.h Sat Sep 20
05:08:58 2014 UTC
+++ /branches/bleeding_edge/src/x87/macro-assembler-x87.h Tue Sep 23
09:20:36 2014 UTC
@@ -882,13 +882,13 @@
Label* on_not_flat_one_byte_strings);
// Checks if the given register or operand is a unique name
- void JumpIfNotUniqueName(Register reg, Label* not_unique_name,
- Label::Distance distance = Label::kFar) {
- JumpIfNotUniqueName(Operand(reg), not_unique_name, distance);
+ void JumpIfNotUniqueNameInstanceType(Register reg, Label*
not_unique_name,
+ Label::Distance distance =
Label::kFar) {
+ JumpIfNotUniqueNameInstanceType(Operand(reg), not_unique_name,
distance);
}
- void JumpIfNotUniqueName(Operand operand, Label* not_unique_name,
- Label::Distance distance = Label::kFar);
+ void JumpIfNotUniqueNameInstanceType(Operand operand, Label*
not_unique_name,
+ Label::Distance distance =
Label::kFar);
void EmitSeqStringSetCharCheck(Register string,
Register index,
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.