Revision: 14345
Author: [email protected]
Date: Thu Apr 18 16:48:42 2013
Log: MIPS: Add infrastructure to automatucally generate IC miss stubs
Port r14342 (24df6264)
BUG=
Review URL: https://codereview.chromium.org/13896016
http://code.google.com/p/v8/source/detail?r=14345
Modified:
/branches/bleeding_edge/src/mips/code-stubs-mips.cc
=======================================
--- /branches/bleeding_edge/src/mips/code-stubs-mips.cc Wed Apr 17 06:51:08
2013
+++ /branches/bleeding_edge/src/mips/code-stubs-mips.cc Thu Apr 18 16:48:42
2013
@@ -159,6 +159,30 @@
__ LoadRoot(scratch2, Heap::kHeapNumberMapRootIndex);
__ Branch(not_a_heap_number, ne, scratch1, Operand(scratch2));
}
+
+
+void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm) {
+ // Update the static counter each time a new code stub is generated.
+ Isolate* isolate = masm->isolate();
+ isolate->counters()->code_stubs()->Increment();
+
+ CodeStubInterfaceDescriptor* descriptor =
GetInterfaceDescriptor(isolate);
+ int param_count = descriptor->register_param_count_;
+ {
+ // Call the runtime system in a fresh internal frame.
+ FrameScope scope(masm, StackFrame::INTERNAL);
+ ASSERT(descriptor->register_param_count_ == 0 ||
+ a0.is(descriptor->register_params_[param_count - 1]));
+ // Push arguments
+ for (int i = 0; i < param_count; ++i) {
+ __ push(descriptor->register_params_[i]);
+ }
+ ExternalReference miss = descriptor->miss_handler_;
+ __ CallExternalReference(miss, descriptor->register_param_count_);
+ }
+
+ __ Ret();
+}
void ToNumberStub::Generate(MacroAssembler* masm) {
--
--
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.