Revision: 18369
Author: [email protected]
Date: Wed Dec 18 22:51:23 2013 UTC
Log: Pretty printing for array code stubs. The minor keys encode
things like specialized ElementsKind for each stub. This can be useful to
see in disassembly traces.
[email protected]
Review URL: https://codereview.chromium.org/110103002
http://code.google.com/p/v8/source/detail?r=18369
Modified:
/branches/bleeding_edge/src/code-stubs.cc
/branches/bleeding_edge/src/code-stubs.h
=======================================
--- /branches/bleeding_edge/src/code-stubs.cc Fri Dec 13 10:27:19 2013 UTC
+++ /branches/bleeding_edge/src/code-stubs.cc Wed Dec 18 22:51:23 2013 UTC
@@ -583,6 +583,28 @@
stream->Add("CallConstructStub");
if (RecordCallTarget()) stream->Add("_Recording");
}
+
+
+void ArrayConstructorStub::PrintName(StringStream* stream) {
+ stream->Add("ArrayConstructorStub");
+ switch (argument_count_) {
+ case ANY: stream->Add("_Any"); break;
+ case NONE: stream->Add("_None"); break;
+ case ONE: stream->Add("_One"); break;
+ case MORE_THAN_ONE: stream->Add("_More_Than_One"); break;
+ }
+}
+
+
+void ArrayConstructorStubBase::BasePrintName(const char* name,
+ StringStream* stream) {
+ stream->Add(name);
+ stream->Add("_");
+ stream->Add(ElementsKindToString(elements_kind()));
+ if (override_mode() == DISABLE_ALLOCATION_SITES) {
+ stream->Add("_DISABLE_ALLOCATION_SITES");
+ }
+}
bool ToBooleanStub::UpdateStatus(Handle<Object> object) {
=======================================
--- /branches/bleeding_edge/src/code-stubs.h Wed Dec 18 11:58:58 2013 UTC
+++ /branches/bleeding_edge/src/code-stubs.h Wed Dec 18 22:51:23 2013 UTC
@@ -741,6 +741,7 @@
private:
void GenerateDispatchToArrayStub(MacroAssembler* masm,
AllocationSiteOverrideMode mode);
+ virtual void PrintName(StringStream* stream);
virtual CodeStub::Major MajorKey() { return ArrayConstructor; }
virtual int MinorKey() { return argument_count_; }
@@ -1933,6 +1934,9 @@
static const int kConstructor = 0;
static const int kPropertyCell = 1;
+ protected:
+ void BasePrintName(const char* name, StringStream* stream);
+
private:
int NotMissMinorKey() { return bit_field_; }
@@ -1967,6 +1971,10 @@
private:
Major MajorKey() { return ArrayNoArgumentConstructor; }
+
+ virtual void PrintName(StringStream* stream) {
+ BasePrintName("ArrayNoArgumentConstructorStub", stream);
+ }
DISALLOW_COPY_AND_ASSIGN(ArrayNoArgumentConstructorStub);
};
@@ -1989,6 +1997,10 @@
private:
Major MajorKey() { return ArraySingleArgumentConstructor; }
+
+ virtual void PrintName(StringStream* stream) {
+ BasePrintName("ArraySingleArgumentConstructorStub", stream);
+ }
DISALLOW_COPY_AND_ASSIGN(ArraySingleArgumentConstructorStub);
};
@@ -2011,6 +2023,10 @@
private:
Major MajorKey() { return ArrayNArgumentsConstructor; }
+
+ virtual void PrintName(StringStream* stream) {
+ BasePrintName("ArrayNArgumentsConstructorStub", stream);
+ }
DISALLOW_COPY_AND_ASSIGN(ArrayNArgumentsConstructorStub);
};
--
--
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.