Commit 845aa75f authored by Igor Sheludko's avatar Igor Sheludko Committed by Commit Bot

[builtins] Remove unused LoadField builtin.

Bug: v8:7570
Change-Id: I8b15d6e9f4991d0a6884277a5d67090f24270fcc
Reviewed-on: https://chromium-review.googlesource.com/1005261Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52549}
parent 077205be
...@@ -203,7 +203,6 @@ namespace internal { ...@@ -203,7 +203,6 @@ namespace internal {
TFH(KeyedStoreIC_Megamorphic, StoreWithVector) \ TFH(KeyedStoreIC_Megamorphic, StoreWithVector) \
TFH(KeyedStoreIC_Slow, StoreWithVector) \ TFH(KeyedStoreIC_Slow, StoreWithVector) \
TFH(LoadGlobalIC_Slow, LoadWithVector) \ TFH(LoadGlobalIC_Slow, LoadWithVector) \
TFH(LoadField, LoadField) \
TFH(LoadIC_FunctionPrototype, LoadWithVector) \ TFH(LoadIC_FunctionPrototype, LoadWithVector) \
TFH(LoadIC_Slow, LoadWithVector) \ TFH(LoadIC_Slow, LoadWithVector) \
TFH(LoadIC_StringLength, LoadWithVector) \ TFH(LoadIC_StringLength, LoadWithVector) \
......
...@@ -25,7 +25,6 @@ IC_BUILTIN(LoadIC_Noninlined) ...@@ -25,7 +25,6 @@ IC_BUILTIN(LoadIC_Noninlined)
IC_BUILTIN(LoadIC_Uninitialized) IC_BUILTIN(LoadIC_Uninitialized)
IC_BUILTIN(KeyedLoadIC) IC_BUILTIN(KeyedLoadIC)
IC_BUILTIN(LoadICTrampoline) IC_BUILTIN(LoadICTrampoline)
IC_BUILTIN(LoadField)
IC_BUILTIN(KeyedLoadICTrampoline) IC_BUILTIN(KeyedLoadICTrampoline)
IC_BUILTIN(KeyedLoadIC_Megamorphic) IC_BUILTIN(KeyedLoadIC_Megamorphic)
IC_BUILTIN(KeyedLoadIC_PolymorphicName) IC_BUILTIN(KeyedLoadIC_PolymorphicName)
......
...@@ -438,7 +438,6 @@ bool Builtins::IsIsolateIndependent(int index) { ...@@ -438,7 +438,6 @@ bool Builtins::IsIsolateIndependent(int index) {
case kKeyedStoreICTrampoline: case kKeyedStoreICTrampoline:
case kLessThan: case kLessThan:
case kLessThanOrEqual: case kLessThanOrEqual:
case kLoadField:
case kLoadGlobalIC: case kLoadGlobalIC:
case kLoadGlobalICInsideTypeof: case kLoadGlobalICInsideTypeof:
case kLoadGlobalICInsideTypeofTrampoline: case kLoadGlobalICInsideTypeofTrampoline:
......
...@@ -3173,30 +3173,6 @@ void AccessorAssembler::GenerateLoadICTrampoline() { ...@@ -3173,30 +3173,6 @@ void AccessorAssembler::GenerateLoadICTrampoline() {
TailCallBuiltin(Builtins::kLoadIC, context, receiver, name, slot, vector); TailCallBuiltin(Builtins::kLoadIC, context, receiver, name, slot, vector);
} }
void AccessorAssembler::GenerateLoadField() {
typedef LoadFieldDescriptor Descriptor;
Node* receiver = Parameter(Descriptor::kReceiver);
Node* name = nullptr;
Node* slot = nullptr;
Node* vector = nullptr;
Node* context = Parameter(Descriptor::kContext);
LoadICParameters p(context, receiver, name, slot, vector);
ExitPoint direct_exit(this);
VARIABLE(var_double_value, MachineRepresentation::kFloat64);
Label rebox_double(this, &var_double_value);
Node* smi_handler = Parameter(Descriptor::kSmiHandler);
Node* handler_word = SmiUntag(smi_handler);
HandleLoadField(receiver, handler_word, &var_double_value, &rebox_double,
&direct_exit);
BIND(&rebox_double);
Return(AllocateHeapNumberWithValue(var_double_value.value()));
}
void AccessorAssembler::GenerateLoadGlobalIC(TypeofMode typeof_mode) { void AccessorAssembler::GenerateLoadGlobalIC(TypeofMode typeof_mode) {
typedef LoadGlobalWithVectorDescriptor Descriptor; typedef LoadGlobalWithVectorDescriptor Descriptor;
......
...@@ -30,7 +30,6 @@ class AccessorAssembler : public CodeStubAssembler { ...@@ -30,7 +30,6 @@ class AccessorAssembler : public CodeStubAssembler {
void GenerateLoadIC(); void GenerateLoadIC();
void GenerateLoadIC_Noninlined(); void GenerateLoadIC_Noninlined();
void GenerateLoadIC_Uninitialized(); void GenerateLoadIC_Uninitialized();
void GenerateLoadField();
void GenerateLoadICTrampoline(); void GenerateLoadICTrampoline();
void GenerateKeyedLoadIC(); void GenerateKeyedLoadIC();
void GenerateKeyedLoadICTrampoline(); void GenerateKeyedLoadICTrampoline();
......
...@@ -124,21 +124,6 @@ void LoadDescriptor::InitializePlatformSpecific( ...@@ -124,21 +124,6 @@ void LoadDescriptor::InitializePlatformSpecific(
data->InitializePlatformSpecific(arraysize(registers), registers); data->InitializePlatformSpecific(arraysize(registers), registers);
} }
void LoadFieldDescriptor::InitializePlatformIndependent(
CallInterfaceDescriptorData* data) {
// kReceiver, kSmiHandler
MachineType machine_types[] = {MachineType::AnyTagged(),
MachineType::AnyTagged()};
data->InitializePlatformIndependent(arraysize(machine_types), 0,
machine_types);
}
void LoadFieldDescriptor::InitializePlatformSpecific(
CallInterfaceDescriptorData* data) {
Register registers[] = {ReceiverRegister(), SmiHandlerRegister()};
data->InitializePlatformSpecific(arraysize(registers), registers);
}
void LoadGlobalDescriptor::InitializePlatformIndependent( void LoadGlobalDescriptor::InitializePlatformIndependent(
CallInterfaceDescriptorData* data) { CallInterfaceDescriptorData* data) {
// kName, kSlot // kName, kSlot
...@@ -327,19 +312,6 @@ void MathPowIntegerDescriptor::InitializePlatformSpecific( ...@@ -327,19 +312,6 @@ void MathPowIntegerDescriptor::InitializePlatformSpecific(
data->InitializePlatformSpecific(arraysize(registers), registers); data->InitializePlatformSpecific(arraysize(registers), registers);
} }
const Register LoadFieldDescriptor::ReceiverRegister() {
// Reuse the register from the LoadDescriptor, since given the
// LoadFieldDescriptor's usage, it doesn't matter exactly which registers are
// used to pass parameters in.
return LoadDescriptor::ReceiverRegister();
}
const Register LoadFieldDescriptor::SmiHandlerRegister() {
// Reuse the register from the LoadDescriptor, since given the
// LoadFieldDescriptor's usage, it doesn't matter exactly which registers are
// used to pass parameters in.
return LoadDescriptor::NameRegister();
}
void LoadWithVectorDescriptor::InitializePlatformIndependent( void LoadWithVectorDescriptor::InitializePlatformIndependent(
CallInterfaceDescriptorData* data) { CallInterfaceDescriptorData* data) {
// kReceiver, kName, kSlot, kVector // kReceiver, kName, kSlot, kVector
......
...@@ -22,7 +22,6 @@ class PlatformInterfaceDescriptor; ...@@ -22,7 +22,6 @@ class PlatformInterfaceDescriptor;
V(ContextOnly) \ V(ContextOnly) \
V(Load) \ V(Load) \
V(LoadWithVector) \ V(LoadWithVector) \
V(LoadField) \
V(LoadGlobal) \ V(LoadGlobal) \
V(LoadGlobalWithVector) \ V(LoadGlobalWithVector) \
V(Store) \ V(Store) \
...@@ -366,18 +365,6 @@ class LoadDescriptor : public CallInterfaceDescriptor { ...@@ -366,18 +365,6 @@ class LoadDescriptor : public CallInterfaceDescriptor {
static const Register SlotRegister(); static const Register SlotRegister();
}; };
// LoadFieldDescriptor is used by the shared handler that loads a field from an
// object based on the smi-encoded field description.
class LoadFieldDescriptor : public CallInterfaceDescriptor {
public:
DEFINE_PARAMETERS(kReceiver, kSmiHandler)
DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(LoadFieldDescriptor,
CallInterfaceDescriptor)
static const Register ReceiverRegister();
static const Register SmiHandlerRegister();
};
class LoadGlobalDescriptor : public CallInterfaceDescriptor { class LoadGlobalDescriptor : public CallInterfaceDescriptor {
public: public:
DEFINE_PARAMETERS(kName, kSlot) DEFINE_PARAMETERS(kName, kSlot)
......
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