Index: src/code-stubs.cc |
diff --git a/src/code-stubs.cc b/src/code-stubs.cc |
index e1d771e32030c08341d0d10a80fe23a4778643bc..f60e0a7a08377e5222872fa3eb7cc0cd561d6bb8 100644 |
--- a/src/code-stubs.cc |
+++ b/src/code-stubs.cc |
@@ -77,6 +77,29 @@ void CodeStubInterfaceDescriptor::Initialize( |
} |
+void CallInterfaceDescriptor::Initialize( |
+ int register_parameter_count, |
+ Register* registers, |
+ Representation* param_representations, |
+ PlatformCallInterfaceDescriptor* platform_descriptor) { |
+ // CallInterfaceDescriptor owns a copy of the registers array. |
+ register_param_count_ = register_parameter_count; |
+ register_params_.Reset(NewArray<Register>(register_parameter_count)); |
+ for (int i = 0; i < register_parameter_count; i++) { |
+ register_params_[i] = registers[i]; |
+ } |
+ |
+ // Also the register parameter representations. |
+ param_representations_.Reset( |
+ NewArray<Representation>(register_parameter_count)); |
+ for (int i = 0; i < register_parameter_count; i++) { |
+ param_representations_[i] = param_representations[i]; |
+ } |
+ |
+ platform_specific_descriptor_ = platform_descriptor; |
+} |
+ |
+ |
bool CodeStub::FindCodeInCache(Code** code_out) { |
UnseededNumberDictionary* stubs = isolate()->heap()->code_stubs(); |
int index = stubs->FindEntry(GetKey()); |