diff options
Diffstat (limited to 'deps/v8/src/ia32/interface-descriptors-ia32.cc')
-rw-r--r-- | deps/v8/src/ia32/interface-descriptors-ia32.cc | 33 |
1 files changed, 8 insertions, 25 deletions
diff --git a/deps/v8/src/ia32/interface-descriptors-ia32.cc b/deps/v8/src/ia32/interface-descriptors-ia32.cc index c2300876185..71205b10d03 100644 --- a/deps/v8/src/ia32/interface-descriptors-ia32.cc +++ b/deps/v8/src/ia32/interface-descriptors-ia32.cc @@ -13,7 +13,14 @@ const Register CallInterfaceDescriptor::ContextRegister() { return esi; } void CallInterfaceDescriptor::DefaultInitializePlatformSpecific( CallInterfaceDescriptorData* data, int register_parameter_count) { - const Register default_stub_registers[] = {eax, ebx, ecx, edx, edi}; +#if defined(V8_TARGET_ARCH_IA32) && defined(V8_EMBEDDED_BUILTINS) + // TODO(jgruber,v8:6666): Keep kRootRegister free unconditionally. + constexpr Register default_stub_registers[] = {eax, ecx, edx, edi}; + DCHECK(!AreAliased(eax, ecx, edx, edi, kRootRegister)); +#else + constexpr Register default_stub_registers[] = {eax, ebx, ecx, edx, edi}; +#endif + STATIC_ASSERT(arraysize(default_stub_registers) == kMaxBuiltinRegisterParams); CHECK_LE(static_cast<size_t>(register_parameter_count), arraysize(default_stub_registers)); data->InitializePlatformSpecific(register_parameter_count, @@ -247,30 +254,6 @@ void InterpreterPushArgsThenConstructDescriptor::InitializePlatformSpecific( data->InitializePlatformSpecific(arraysize(registers), registers); } -namespace { - -void InterpreterCEntryDescriptor_InitializePlatformSpecific( - CallInterfaceDescriptorData* data) { - Register registers[] = { - eax, // argument count (argc) - ecx, // address of first argument (argv) - ebx // the runtime function to call - }; - data->InitializePlatformSpecific(arraysize(registers), registers); -} - -} // namespace - -void InterpreterCEntry1Descriptor::InitializePlatformSpecific( - CallInterfaceDescriptorData* data) { - InterpreterCEntryDescriptor_InitializePlatformSpecific(data); -} - -void InterpreterCEntry2Descriptor::InitializePlatformSpecific( - CallInterfaceDescriptorData* data) { - InterpreterCEntryDescriptor_InitializePlatformSpecific(data); -} - void ResumeGeneratorDescriptor::InitializePlatformSpecific( CallInterfaceDescriptorData* data) { Register registers[] = { |