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 |