| Index: src/code-stubs.cc
|
| diff --git a/src/code-stubs.cc b/src/code-stubs.cc
|
| index 1b0d8b0b6fb8386f1df145cae18d51b33b270fba..ba027e93320721b61e7141aedcc8e08c476d9567 100644
|
| --- a/src/code-stubs.cc
|
| +++ b/src/code-stubs.cc
|
| @@ -49,8 +49,10 @@ bool CodeStub::FindCodeInCache(Code** code_out) {
|
| void CodeStub::GenerateCode(MacroAssembler* masm) {
|
| // Update the static counter each time a new code stub is generated.
|
| Counters::code_stubs.Increment();
|
| +
|
| // Nested stubs are not allowed for leafs.
|
| - masm->set_allow_stub_calls(AllowsStubCalls());
|
| + AllowStubCallsScope allow_scope(masm, AllowsStubCalls());
|
| +
|
| // Generate the code for the stub.
|
| masm->set_generating_stub(true);
|
| Generate(masm);
|
| @@ -197,4 +199,34 @@ void ICCompareStub::Generate(MacroAssembler* masm) {
|
| }
|
|
|
|
|
| +const char* InstanceofStub::GetName() {
|
| + if (name_ != NULL) return name_;
|
| + const int kMaxNameLength = 100;
|
| + name_ = Bootstrapper::AllocateAutoDeletedArray(kMaxNameLength);
|
| + if (name_ == NULL) return "OOM";
|
| +
|
| + const char* args = "";
|
| + if (HasArgsInRegisters()) {
|
| + args = "_REGS";
|
| + }
|
| +
|
| + const char* inline_check = "";
|
| + if (HasCallSiteInlineCheck()) {
|
| + inline_check = "_INLINE";
|
| + }
|
| +
|
| + const char* return_true_false_object = "";
|
| + if (ReturnTrueFalseObject()) {
|
| + return_true_false_object = "_TRUEFALSE";
|
| + }
|
| +
|
| + OS::SNPrintF(Vector<char>(name_, kMaxNameLength),
|
| + "InstanceofStub%s%s%s",
|
| + args,
|
| + inline_check,
|
| + return_true_false_object);
|
| + return name_;
|
| +}
|
| +
|
| +
|
| } } // namespace v8::internal
|
|
|