Reviewers: Yang,
Message:
Hi Yang,
Following in your tradition, PTAL, thx!
--Michael
Description:
Minor-key-ify new LoadICTrampolineStub.
[email protected]
Please review this at https://codereview.chromium.org/500423002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+19, -15 lines):
M src/arm/code-stubs-arm.cc
M src/arm64/code-stubs-arm64.cc
M src/code-stubs.h
M src/ia32/code-stubs-ia32.cc
M src/x64/code-stubs-x64.cc
Index: src/arm/code-stubs-arm.cc
diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc
index
23f87cc37765661505ae8a6bcf5507f008908c6a..73b68ae4fb3e72785cf85071dde0a17c2fe328c5
100644
--- a/src/arm/code-stubs-arm.cc
+++ b/src/arm/code-stubs-arm.cc
@@ -4594,7 +4594,7 @@ void
StubFailureTrampolineStub::Generate(MacroAssembler* masm) {
void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
EmitLoadTypeFeedbackVector(masm,
FullVectorLoadConvention::VectorRegister());
- VectorLoadStub stub(isolate(), state_);
+ VectorLoadStub stub(isolate(), state());
__ Jump(stub.GetCode(), RelocInfo::CODE_TARGET);
}
Index: src/arm64/code-stubs-arm64.cc
diff --git a/src/arm64/code-stubs-arm64.cc b/src/arm64/code-stubs-arm64.cc
index
8c99ea1f6598afe6f8589f7c2f482371a85043c4..5daca9c1e20ebdd915120748900a3c1b175bd8de
100644
--- a/src/arm64/code-stubs-arm64.cc
+++ b/src/arm64/code-stubs-arm64.cc
@@ -4602,7 +4602,7 @@ void
StubFailureTrampolineStub::Generate(MacroAssembler* masm) {
void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
EmitLoadTypeFeedbackVector(masm,
FullVectorLoadConvention::VectorRegister());
- VectorLoadStub stub(isolate(), state_);
+ VectorLoadStub stub(isolate(), state());
__ Jump(stub.GetCode(), RelocInfo::CODE_TARGET);
}
Index: src/code-stubs.h
diff --git a/src/code-stubs.h b/src/code-stubs.h
index
c43cb2f3efc56acf3080dd0c8e9b2999912c1b07..dea29dcbc55e01354251880e22509182ef0ae0bb
100644
--- a/src/code-stubs.h
+++ b/src/code-stubs.h
@@ -1944,7 +1944,9 @@ class KeyedLoadGenericStub : public HydrogenCodeStub {
class LoadICTrampolineStub : public PlatformCodeStub {
public:
LoadICTrampolineStub(Isolate* isolate, const LoadIC::State& state)
- : PlatformCodeStub(isolate), state_(state) {}
+ : PlatformCodeStub(isolate) {
+ minor_key_ = state.GetExtraICState();
+ }
virtual Code::Kind GetCodeKind() const V8_OVERRIDE { return
Code::LOAD_IC; }
@@ -1953,17 +1955,18 @@ class LoadICTrampolineStub : public
PlatformCodeStub {
}
virtual ExtraICState GetExtraICState() const V8_FINAL V8_OVERRIDE {
- return state_.GetExtraICState();
+ return static_cast<ExtraICState>(minor_key_);
}
+ virtual Major MajorKey() const V8_OVERRIDE { return LoadICTrampoline; }
+
private:
- Major MajorKey() const { return LoadICTrampoline; }
- uint32_t MinorKey() const { return GetExtraICState(); }
+ LoadIC::State state() const {
+ return LoadIC::State(static_cast<ExtraICState>(minor_key_));
+ }
virtual void Generate(MacroAssembler* masm);
- const LoadIC::State state_;
-
DISALLOW_COPY_AND_ASSIGN(LoadICTrampolineStub);
};
@@ -1977,9 +1980,9 @@ class KeyedLoadICTrampolineStub : public
LoadICTrampolineStub {
return Code::KEYED_LOAD_IC;
}
- private:
- Major MajorKey() const { return KeyedLoadICTrampoline; }
+ virtual Major MajorKey() const V8_OVERRIDE { return
KeyedLoadICTrampoline; }
+ private:
virtual void Generate(MacroAssembler* masm);
DISALLOW_COPY_AND_ASSIGN(KeyedLoadICTrampolineStub);
@@ -2008,8 +2011,9 @@ class VectorLoadStub : public HydrogenCodeStub {
return state_.GetExtraICState();
}
+ virtual Major MajorKey() const V8_OVERRIDE { return VectorLoad; }
+
private:
- Major MajorKey() const { return VectorLoad; }
int NotMissMinorKey() const { return state_.GetExtraICState(); }
const LoadIC::State state_;
@@ -2034,9 +2038,9 @@ class VectorKeyedLoadStub : public VectorLoadStub {
return Code::KEYED_LOAD_IC;
}
- private:
- Major MajorKey() const { return VectorKeyedLoad; }
+ virtual Major MajorKey() const V8_OVERRIDE { return VectorKeyedLoad; }
+ private:
DISALLOW_COPY_AND_ASSIGN(VectorKeyedLoadStub);
};
Index: src/ia32/code-stubs-ia32.cc
diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
index
ec484c1c512b3f9f9d72ec1087abaee52c25629f..f6f2dffe1e3a6fa02b73d7cc4fd75e853323c9cf
100644
--- a/src/ia32/code-stubs-ia32.cc
+++ b/src/ia32/code-stubs-ia32.cc
@@ -4502,7 +4502,7 @@ void
StubFailureTrampolineStub::Generate(MacroAssembler* masm) {
void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
EmitLoadTypeFeedbackVector(masm,
FullVectorLoadConvention::VectorRegister());
- VectorLoadStub stub(isolate(), state_);
+ VectorLoadStub stub(isolate(), state());
__ jmp(stub.GetCode(), RelocInfo::CODE_TARGET);
}
Index: src/x64/code-stubs-x64.cc
diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc
index
fefbde375ff0fde6617a9931a970efdac56dc6bc..51e372c4d5c30ad90f428714de31ac909b1d9675
100644
--- a/src/x64/code-stubs-x64.cc
+++ b/src/x64/code-stubs-x64.cc
@@ -4442,7 +4442,7 @@ void
StubFailureTrampolineStub::Generate(MacroAssembler* masm) {
void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
EmitLoadTypeFeedbackVector(masm,
FullVectorLoadConvention::VectorRegister());
- VectorLoadStub stub(isolate(), state_);
+ VectorLoadStub stub(isolate(), state());
__ jmp(stub.GetCode(), RelocInfo::CODE_TARGET);
}
--
--
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.