Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(473)

Unified Diff: src/interface-descriptors.cc

Issue 2051573002: [Interpreter] Add intrinsics called as stubs. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix leak Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/interface-descriptors.h ('k') | src/interpreter/interpreter-intrinsics.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/interface-descriptors.cc
diff --git a/src/interface-descriptors.cc b/src/interface-descriptors.cc
index ef2e817a4347bf8cbc2e709993f1164eb1fc10bf..8e0809f685fcd40e051627eaf410019f7776b95d 100644
--- a/src/interface-descriptors.cc
+++ b/src/interface-descriptors.cc
@@ -214,7 +214,6 @@ void MathPowTaggedDescriptor::InitializePlatformSpecific(
data->InitializePlatformSpecific(arraysize(registers), registers);
}
-
void MathPowIntegerDescriptor::InitializePlatformSpecific(
CallInterfaceDescriptorData* data) {
Register registers[] = {exponent()};
@@ -321,6 +320,48 @@ void ContextOnlyDescriptor::InitializePlatformSpecific(
data->InitializePlatformSpecific(0, nullptr);
}
+CallInterfaceDescriptor OnStackArgsDescriptorBase::ForArgs(
+ Isolate* isolate, int parameter_count) {
+ switch (parameter_count) {
+ case 1:
+ return OnStackWith1ArgsDescriptor(isolate);
+ case 2:
+ return OnStackWith2ArgsDescriptor(isolate);
+ case 3:
+ return OnStackWith3ArgsDescriptor(isolate);
+ case 4:
+ return OnStackWith4ArgsDescriptor(isolate);
+ case 5:
+ return OnStackWith5ArgsDescriptor(isolate);
+ case 6:
+ return OnStackWith6ArgsDescriptor(isolate);
+ case 7:
+ return OnStackWith7ArgsDescriptor(isolate);
+ default:
+ UNREACHABLE();
+ return VoidDescriptor(isolate);
+ }
+}
+
+FunctionType*
+OnStackArgsDescriptorBase::BuildCallInterfaceDescriptorFunctionTypeWithArg(
+ Isolate* isolate, int register_parameter_count, int parameter_count) {
+ DCHECK_EQ(0, register_parameter_count);
+ DCHECK_GT(parameter_count, 0);
+ Zone* zone = isolate->interface_descriptor_zone();
+ FunctionType* function =
+ Type::Function(AnyTagged(zone), AnyTagged(zone), parameter_count, zone)
+ ->AsFunction();
+ for (int i = 0; i < parameter_count; i++) {
+ function->InitParameter(i, AnyTagged(zone));
+ }
+ return function;
+}
+
+void OnStackArgsDescriptorBase::InitializePlatformSpecific(
+ CallInterfaceDescriptorData* data) {
+ data->InitializePlatformSpecific(0, nullptr);
+}
void GrowArrayElementsDescriptor::InitializePlatformSpecific(
CallInterfaceDescriptorData* data) {
« no previous file with comments | « src/interface-descriptors.h ('k') | src/interpreter/interpreter-intrinsics.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698