Commit 9151860c authored by mbrandy's avatar mbrandy Committed by Commit bot

PPC: [stubs] A new approach to TF stubs

Port 3e7e3ed7

Original commit message:
    * Add a sibling interface to InterpreterAssembler called
      CodeStubAssembler which provides a wrapper around the
      RawMachineAssembler and is intented to make it easy to build
      efficient cross-platform code stubs. Much of the implementation
      of CodeStubAssembler is shamelessly stolen from the
      InterpreterAssembler, and the idea is to eventually merge the
      two interfaces somehow, probably moving the
      InterpreterAssembler interface over to use the
      CodeStubAssembler. Short-term, however, the two interfaces
      shall remain decoupled to increase our velocity developing the
      two systems in parallel.
    * Implement the StringLength stub in TurboFan with the new
      CodeStubAssembler. Replace and remove the old Hydrogen-stub
      version.
    * Remove a whole slew of machinery to support JavaScript-style
      code stub generation, since it ultimately proved unwieldy,
      brittle and baroque. This cleanup includes removing the shared
      code stub context, several example stubs and a tangle of build
      file changes.

R=danno@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:4587
LOG=n

Review URL: https://codereview.chromium.org/1492633006

Cr-Commit-Position: refs/heads/master@{#32532}
parent 65d28d70
...@@ -390,27 +390,6 @@ void ApiAccessorDescriptor::InitializePlatformSpecific( ...@@ -390,27 +390,6 @@ void ApiAccessorDescriptor::InitializePlatformSpecific(
} }
void MathRoundVariantCallFromUnoptimizedCodeDescriptor::
InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
Register registers[] = {
r4, // math rounding function
r6, // vector slot id
};
data->InitializePlatformSpecific(arraysize(registers), registers);
}
void MathRoundVariantCallFromOptimizedCodeDescriptor::
InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
Register registers[] = {
r4, // math rounding function
r6, // vector slot id
r7, // type vector
};
data->InitializePlatformSpecific(arraysize(registers), registers);
}
void InterpreterPushArgsAndCallDescriptor::InitializePlatformSpecific( void InterpreterPushArgsAndCallDescriptor::InitializePlatformSpecific(
CallInterfaceDescriptorData* data) { CallInterfaceDescriptorData* data) {
Register registers[] = { Register registers[] = {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment