Revision: 19384
Author: [email protected]
Date: Fri Feb 14 15:15:08 2014 UTC
Log: Don't mix handler flags into regular flag computation.
BUG=
[email protected]
Review URL: https://codereview.chromium.org/163363003
http://code.google.com/p/v8/source/detail?r=19384
Modified:
/branches/bleeding_edge/src/a64/ic-a64.cc
/branches/bleeding_edge/src/arm/ic-arm.cc
/branches/bleeding_edge/src/builtins.cc
/branches/bleeding_edge/src/code-stubs-hydrogen.cc
/branches/bleeding_edge/src/code-stubs.cc
/branches/bleeding_edge/src/code-stubs.h
/branches/bleeding_edge/src/compiler.cc
/branches/bleeding_edge/src/ia32/ic-ia32.cc
/branches/bleeding_edge/src/objects-inl.h
/branches/bleeding_edge/src/objects.h
/branches/bleeding_edge/src/stub-cache.cc
/branches/bleeding_edge/src/type-info.cc
/branches/bleeding_edge/src/x64/ic-x64.cc
=======================================
--- /branches/bleeding_edge/src/a64/ic-a64.cc Wed Feb 12 09:19:30 2014 UTC
+++ /branches/bleeding_edge/src/a64/ic-a64.cc Fri Feb 14 15:15:08 2014 UTC
@@ -435,9 +435,7 @@
// -----------------------------------
// Probe the stub cache.
- Code::Flags flags = Code::ComputeFlags(
- Code::HANDLER, MONOMORPHIC, extra_state,
- Code::NORMAL, Code::LOAD_IC);
+ Code::Flags flags = Code::ComputeHandlerFlags(Code::LOAD_IC,
extra_state);
masm->isolate()->stub_cache()->GenerateProbe(
masm, flags, x0, x2, x3, x4, x5, x6);
@@ -1220,7 +1218,7 @@
void StoreIC::GenerateMegamorphic(MacroAssembler* masm,
- ExtraICState extra_ic_state) {
+ ExtraICState extra_state) {
// ----------- S t a t e -------------
// -- x0 : value
// -- x1 : receiver
@@ -1229,9 +1227,7 @@
// -----------------------------------
// Probe the stub cache.
- Code::Flags flags = Code::ComputeFlags(
- Code::HANDLER, MONOMORPHIC, extra_ic_state,
- Code::NORMAL, Code::STORE_IC);
+ Code::Flags flags = Code::ComputeHandlerFlags(Code::STORE_IC,
extra_state);
masm->isolate()->stub_cache()->GenerateProbe(
masm, flags, x1, x2, x3, x4, x5, x6);
=======================================
--- /branches/bleeding_edge/src/arm/ic-arm.cc Fri Jan 31 16:52:17 2014 UTC
+++ /branches/bleeding_edge/src/arm/ic-arm.cc Fri Feb 14 15:15:08 2014 UTC
@@ -342,9 +342,7 @@
// -----------------------------------
// Probe the stub cache.
- Code::Flags flags = Code::ComputeFlags(
- Code::HANDLER, MONOMORPHIC, extra_state,
- Code::NORMAL, Code::LOAD_IC);
+ Code::Flags flags = Code::ComputeHandlerFlags(Code::LOAD_IC,
extra_state);
masm->isolate()->stub_cache()->GenerateProbe(
masm, flags, r0, r2, r3, r4, r5, r6);
@@ -1163,7 +1161,7 @@
void StoreIC::GenerateMegamorphic(MacroAssembler* masm,
- ExtraICState extra_ic_state) {
+ ExtraICState extra_state) {
// ----------- S t a t e -------------
// -- r0 : value
// -- r1 : receiver
@@ -1172,9 +1170,7 @@
// -----------------------------------
// Get the receiver from the stack and probe the stub cache.
- Code::Flags flags = Code::ComputeFlags(
- Code::HANDLER, MONOMORPHIC, extra_ic_state,
- Code::NORMAL, Code::STORE_IC);
+ Code::Flags flags = Code::ComputeHandlerFlags(Code::STORE_IC,
extra_state);
masm->isolate()->stub_cache()->GenerateProbe(
masm, flags, r1, r2, r3, r4, r5, r6);
=======================================
--- /branches/bleeding_edge/src/builtins.cc Wed Feb 12 09:19:30 2014 UTC
+++ /branches/bleeding_edge/src/builtins.cc Fri Feb 14 15:15:08 2014 UTC
@@ -1599,9 +1599,7 @@
functions->c_code =
NULL; \
functions->s_name =
#aname; \
functions->name =
k##aname; \
- functions->flags =
Code::ComputeFlags( \
- Code::HANDLER, MONOMORPHIC,
kNoExtraICState, \
- Code::NORMAL,
Code::kind); \
+ functions->flags =
Code::ComputeHandlerFlags(Code::kind); \
functions->extra_args =
NO_EXTRA_ARGUMENTS; \
++functions;
=======================================
--- /branches/bleeding_edge/src/code-stubs-hydrogen.cc Wed Feb 12 18:48:12
2014 UTC
+++ /branches/bleeding_edge/src/code-stubs-hydrogen.cc Fri Feb 14 15:15:08
2014 UTC
@@ -247,8 +247,7 @@
GetCodeKind(),
GetICState(),
GetExtraICState(),
- GetStubType(),
- GetHandlerKind());
+ GetStubType());
Handle<Code> new_object = factory->NewCode(
desc, flags, masm.CodeObject(), NeedsImmovableCode());
return new_object;
=======================================
--- /branches/bleeding_edge/src/code-stubs.cc Tue Feb 11 15:01:44 2014 UTC
+++ /branches/bleeding_edge/src/code-stubs.cc Fri Feb 14 15:15:08 2014 UTC
@@ -119,8 +119,7 @@
GetCodeKind(),
GetICState(),
GetExtraICState(),
- GetStubType(),
- GetHandlerKind());
+ GetStubType());
Handle<Code> new_object = factory->NewCode(
desc, flags, masm.CodeObject(), NeedsImmovableCode());
return new_object;
=======================================
--- /branches/bleeding_edge/src/code-stubs.h Fri Feb 14 14:13:06 2014 UTC
+++ /branches/bleeding_edge/src/code-stubs.h Fri Feb 14 15:15:08 2014 UTC
@@ -188,9 +188,6 @@
virtual Code::StubType GetStubType() {
return Code::NORMAL;
}
- virtual Code::Kind GetHandlerKind() {
- return Code::STUB;
- }
virtual void PrintName(StringStream* stream);
@@ -885,7 +882,9 @@
class HandlerStub: public HICStub {
public:
virtual Code::Kind GetCodeKind() const { return Code::HANDLER; }
- virtual Code::Kind GetHandlerKind() { return kind(); }
+ virtual ExtraICState GetExtraICState() {
+ return Code::HandlerKindField::encode(kind());
+ }
protected:
HandlerStub() : HICStub() { }
@@ -980,8 +979,6 @@
virtual void InitializeInterfaceDescriptor(
Isolate* isolate,
CodeStubInterfaceDescriptor* descriptor);
-
- virtual ExtraICState GetExtraICState() { return bit_field_; }
bool is_constant() {
return IsConstantBits::decode(bit_field_);
@@ -998,14 +995,11 @@
}
private:
- virtual int NotMissMinorKey() { return GetExtraICState(); }
Major MajorKey() { return StoreGlobal; }
class IsConstantBits: public BitField<bool, 0, 1> {};
class RepresentationBits: public BitField<Representation::Kind, 1, 8> {};
- int bit_field_;
-
DISALLOW_COPY_AND_ASSIGN(StoreGlobalStub);
};
=======================================
--- /branches/bleeding_edge/src/compiler.cc Thu Feb 13 16:09:28 2014 UTC
+++ /branches/bleeding_edge/src/compiler.cc Fri Feb 14 15:15:08 2014 UTC
@@ -215,8 +215,7 @@
return Code::ComputeFlags(code_stub()->GetCodeKind(),
code_stub()->GetICState(),
code_stub()->GetExtraICState(),
- code_stub()->GetStubType(),
- code_stub()->GetHandlerKind());
+ code_stub()->GetStubType());
} else {
return Code::ComputeFlags(Code::OPTIMIZED_FUNCTION);
}
=======================================
--- /branches/bleeding_edge/src/ia32/ic-ia32.cc Tue Feb 4 13:53:41 2014 UTC
+++ /branches/bleeding_edge/src/ia32/ic-ia32.cc Fri Feb 14 15:15:08 2014 UTC
@@ -956,9 +956,7 @@
// -----------------------------------
// Probe the stub cache.
- Code::Flags flags = Code::ComputeFlags(
- Code::HANDLER, MONOMORPHIC, extra_state,
- Code::NORMAL, Code::LOAD_IC);
+ Code::Flags flags = Code::ComputeHandlerFlags(Code::LOAD_IC,
extra_state);
masm->isolate()->stub_cache()->GenerateProbe(
masm, flags, edx, ecx, ebx, eax);
@@ -1065,16 +1063,14 @@
void StoreIC::GenerateMegamorphic(MacroAssembler* masm,
- ExtraICState extra_ic_state) {
+ ExtraICState extra_state) {
// ----------- S t a t e -------------
// -- eax : value
// -- ecx : name
// -- edx : receiver
// -- esp[0] : return address
// -----------------------------------
- Code::Flags flags = Code::ComputeFlags(
- Code::HANDLER, MONOMORPHIC, extra_ic_state,
- Code::NORMAL, Code::STORE_IC);
+ Code::Flags flags = Code::ComputeHandlerFlags(Code::STORE_IC,
extra_state);
masm->isolate()->stub_cache()->GenerateProbe(
masm, flags, edx, ecx, ebx, no_reg);
=======================================
--- /branches/bleeding_edge/src/objects-inl.h Fri Feb 14 15:14:34 2014 UTC
+++ /branches/bleeding_edge/src/objects-inl.h Fri Feb 14 15:15:08 2014 UTC
@@ -4478,7 +4478,6 @@
InlineCacheState ic_state,
ExtraICState extra_ic_state,
StubType type,
- Kind handler_kind,
InlineCacheHolderFlag holder) {
// Compute the bit mask.
unsigned int bits = KindField::encode(kind)
@@ -4486,10 +4485,6 @@
| TypeField::encode(type)
| ExtraICStateField::encode(extra_ic_state)
| CacheHolderField::encode(holder);
- // TODO(verwaest): Move to the valid uses of |handler_kind|.
- if (handler_kind != STUB) {
- bits |= HandlerKindField::encode(handler_kind);
- }
return static_cast<Flags>(bits);
}
@@ -4497,10 +4492,17 @@
Code::Flags Code::ComputeMonomorphicFlags(Kind kind,
ExtraICState extra_ic_state,
InlineCacheHolderFlag holder,
- StubType type,
- Kind handler_kind) {
- return ComputeFlags(kind, MONOMORPHIC, extra_ic_state, type,
- handler_kind, holder);
+ StubType type) {
+ return ComputeFlags(kind, MONOMORPHIC, extra_ic_state, type, holder);
+}
+
+
+Code::Flags Code::ComputeHandlerFlags(Kind handler_kind,
+ ExtraICState extra_ic_state,
+ StubType type,
+ InlineCacheHolderFlag holder) {
+ ExtraICState extra = HandlerKindField::encode(handler_kind) |
extra_ic_state;
+ return ComputeFlags(Code::HANDLER, MONOMORPHIC, extra, type, holder);
}
=======================================
--- /branches/bleeding_edge/src/objects.h Fri Feb 14 15:14:34 2014 UTC
+++ /branches/bleeding_edge/src/objects.h Fri Feb 14 15:15:08 2014 UTC
@@ -5375,15 +5375,19 @@
InlineCacheState ic_state = UNINITIALIZED,
ExtraICState extra_ic_state = kNoExtraICState,
StubType type = NORMAL,
- Kind handler_kind = STUB,
InlineCacheHolderFlag holder = OWN_MAP);
static inline Flags ComputeMonomorphicFlags(
Kind kind,
ExtraICState extra_ic_state = kNoExtraICState,
InlineCacheHolderFlag holder = OWN_MAP,
+ StubType type = NORMAL);
+
+ static inline Flags ComputeHandlerFlags(
+ Kind handler_kind,
+ ExtraICState extra_ic_state = kNoExtraICState,
StubType type = NORMAL,
- Kind handler_kind = STUB);
+ InlineCacheHolderFlag holder = OWN_MAP);
static inline InlineCacheState ExtractICStateFromFlags(Flags flags);
static inline StubType ExtractTypeFromFlags(Flags flags);
=======================================
--- /branches/bleeding_edge/src/stub-cache.cc Fri Feb 14 15:14:34 2014 UTC
+++ /branches/bleeding_edge/src/stub-cache.cc Fri Feb 14 15:15:08 2014 UTC
@@ -118,7 +118,7 @@
Code::Kind kind,
InlineCacheHolderFlag cache_holder) {
Code::Flags flags = Code::ComputeMonomorphicFlags(
- Code::HANDLER, kNoExtraICState, cache_holder, Code::NORMAL, kind);
+ Code::HANDLER, kNoExtraICState, cache_holder, Code::NORMAL);
Handle<Object> probe(stub_holder->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
@@ -1235,8 +1235,8 @@
Handle<Code> BaseLoadStoreStubCompiler::GetCode(Code::Kind kind,
Code::StubType type,
Handle<Name> name) {
- Code::Flags flags = Code::ComputeFlags(
- Code::HANDLER, MONOMORPHIC, extra_state(), type, kind,
cache_holder_);
+ Code::Flags flags = Code::ComputeHandlerFlags(
+ kind, extra_state(), type, cache_holder_);
Handle<Code> code = GetCodeWithFlags(flags, name);
PROFILE(isolate(), CodeCreateEvent(log_kind(code), *code, *name));
JitEvent(name, code);
=======================================
--- /branches/bleeding_edge/src/type-info.cc Tue Feb 11 15:01:44 2014 UTC
+++ /branches/bleeding_edge/src/type-info.cc Fri Feb 14 15:15:08 2014 UTC
@@ -283,9 +283,7 @@
FunctionPrototypeStub proto_stub(Code::LOAD_IC);
*is_prototype = LoadIsStub(id, &proto_stub);
if (!*is_prototype) {
- Code::Flags flags = Code::ComputeFlags(
- Code::HANDLER, MONOMORPHIC, kNoExtraICState,
- Code::NORMAL, Code::LOAD_IC);
+ Code::Flags flags = Code::ComputeHandlerFlags(Code::LOAD_IC);
CollectReceiverTypes(id, name, flags, receiver_types);
}
}
@@ -306,9 +304,7 @@
void TypeFeedbackOracle::AssignmentReceiverTypes(
TypeFeedbackId id, Handle<String> name, SmallMapList* receiver_types) {
receiver_types->Clear();
- Code::Flags flags = Code::ComputeFlags(
- Code::HANDLER, MONOMORPHIC, kNoExtraICState,
- Code::NORMAL, Code::STORE_IC);
+ Code::Flags flags = Code::ComputeHandlerFlags(Code::STORE_IC);
CollectReceiverTypes(id, name, flags, receiver_types);
}
=======================================
--- /branches/bleeding_edge/src/x64/ic-x64.cc Fri Jan 31 16:52:17 2014 UTC
+++ /branches/bleeding_edge/src/x64/ic-x64.cc Fri Feb 14 15:15:08 2014 UTC
@@ -982,9 +982,7 @@
// -----------------------------------
// Probe the stub cache.
- Code::Flags flags = Code::ComputeFlags(
- Code::HANDLER, MONOMORPHIC, extra_state,
- Code::NORMAL, Code::LOAD_IC);
+ Code::Flags flags = Code::ComputeHandlerFlags(Code::LOAD_IC,
extra_state);
masm->isolate()->stub_cache()->GenerateProbe(
masm, flags, rax, rcx, rbx, rdx);
@@ -1092,7 +1090,7 @@
void StoreIC::GenerateMegamorphic(MacroAssembler* masm,
- ExtraICState extra_ic_state) {
+ ExtraICState extra_state) {
// ----------- S t a t e -------------
// -- rax : value
// -- rcx : name
@@ -1101,9 +1099,7 @@
// -----------------------------------
// Get the receiver from the stack and probe the stub cache.
- Code::Flags flags = Code::ComputeFlags(
- Code::HANDLER, MONOMORPHIC, extra_ic_state,
- Code::NORMAL, Code::STORE_IC);
+ Code::Flags flags = Code::ComputeHandlerFlags(Code::STORE_IC,
extra_state);
masm->isolate()->stub_cache()->GenerateProbe(
masm, flags, rdx, rcx, rbx, no_reg);
--
--
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/groups/opt_out.