namespace {
// Constructors for common combined semantic and representation types.
-Type* SmiType() {
- return Type::Intersect(Type::SignedSmall(), Type::TaggedSigned());
+Type* SmiType(Zone* zone) {
+ return Type::Intersect(Type::SignedSmall(), Type::TaggedSigned(), zone);
}
-Type* UntaggedSigned32() {
- return Type::Intersect(Type::Signed32(), Type::UntaggedSigned32());
+Type* UntaggedSigned32(Zone* zone) {
+ return Type::Intersect(Type::Signed32(), Type::UntaggedSigned32(), zone);
}
-Type* AnyTagged() {
+Type* AnyTagged(Zone* zone) {
return Type::Intersect(
- Type::Any(), Type::Union(Type::TaggedPointer(), Type::TaggedSigned()));
+ Type::Any(),
+ Type::Union(Type::TaggedPointer(), Type::TaggedSigned(), zone), zone);
}
-Type* ExternalPointer() {
- return Type::Intersect(Type::Internal(), Type::UntaggedPointer());
+Type* ExternalPointer(Zone* zone) {
+ return Type::Intersect(Type::Internal(), Type::UntaggedPointer(), zone);
}
}
Type::FunctionType* CallInterfaceDescriptor::BuildDefaultFunctionType(
Isolate* isolate, int parameter_count) {
- Type::FunctionType* function =
- Type::FunctionType::New(AnyTagged(), Type::Undefined(), parameter_count,
- isolate->interface_descriptor_zone());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function = Type::FunctionType::New(
+ AnyTagged(zone), Type::Undefined(), parameter_count, zone);
while (parameter_count-- != 0) {
- function->InitParameter(parameter_count, AnyTagged());
+ function->InitParameter(parameter_count, AnyTagged(zone));
}
return function;
}
Type::FunctionType* LoadDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 3, isolate->interface_descriptor_zone());
- function->InitParameter(0, AnyTagged());
- function->InitParameter(1, AnyTagged());
- function->InitParameter(2, SmiType());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 3, zone);
+ function->InitParameter(0, AnyTagged(zone));
+ function->InitParameter(1, AnyTagged(zone));
+ function->InitParameter(2, SmiType(zone));
return function;
}
Type::FunctionType*
StoreTransitionDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 4, isolate->interface_descriptor_zone());
- function->InitParameter(0, AnyTagged()); // Receiver
- function->InitParameter(1, AnyTagged()); // Name
- function->InitParameter(2, AnyTagged()); // Value
- function->InitParameter(3, AnyTagged()); // Map
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 4, zone);
+ function->InitParameter(0, AnyTagged(zone)); // Receiver
+ function->InitParameter(1, AnyTagged(zone)); // Name
+ function->InitParameter(2, AnyTagged(zone)); // Value
+ function->InitParameter(3, AnyTagged(zone)); // Map
return function;
}
Type::FunctionType*
LoadGlobalViaContextDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 1, isolate->interface_descriptor_zone());
- function->InitParameter(0, UntaggedSigned32());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 1, zone);
+ function->InitParameter(0, UntaggedSigned32(zone));
return function;
}
Type::FunctionType*
StoreGlobalViaContextDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 2, isolate->interface_descriptor_zone());
- function->InitParameter(0, UntaggedSigned32());
- function->InitParameter(1, AnyTagged());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 2, zone);
+ function->InitParameter(0, UntaggedSigned32(zone));
+ function->InitParameter(1, AnyTagged(zone));
return function;
}
Type::FunctionType*
LoadWithVectorDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 4, isolate->interface_descriptor_zone());
- function->InitParameter(0, AnyTagged());
- function->InitParameter(1, AnyTagged());
- function->InitParameter(2, SmiType());
- function->InitParameter(3, AnyTagged());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 4, zone);
+ function->InitParameter(0, AnyTagged(zone));
+ function->InitParameter(1, AnyTagged(zone));
+ function->InitParameter(2, SmiType(zone));
+ function->InitParameter(3, AnyTagged(zone));
return function;
}
Type::FunctionType*
VectorStoreTransitionDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 6, isolate->interface_descriptor_zone());
- function->InitParameter(0, AnyTagged()); // receiver
- function->InitParameter(1, AnyTagged()); // name
- function->InitParameter(2, AnyTagged()); // value
- function->InitParameter(3, SmiType()); // slot
- function->InitParameter(4, AnyTagged()); // vector
- function->InitParameter(5, AnyTagged()); // map
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 6, zone);
+ function->InitParameter(0, AnyTagged(zone)); // receiver
+ function->InitParameter(1, AnyTagged(zone)); // name
+ function->InitParameter(2, AnyTagged(zone)); // value
+ function->InitParameter(3, SmiType(zone)); // slot
+ function->InitParameter(4, AnyTagged(zone)); // vector
+ function->InitParameter(5, AnyTagged(zone)); // map
return function;
}
Type::FunctionType*
VectorStoreICDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 5, isolate->interface_descriptor_zone());
- function->InitParameter(0, AnyTagged());
- function->InitParameter(1, AnyTagged());
- function->InitParameter(2, AnyTagged());
- function->InitParameter(3, SmiType());
- function->InitParameter(4, AnyTagged());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 5, zone);
+ function->InitParameter(0, AnyTagged(zone));
+ function->InitParameter(1, AnyTagged(zone));
+ function->InitParameter(2, AnyTagged(zone));
+ function->InitParameter(3, SmiType(zone));
+ function->InitParameter(4, AnyTagged(zone));
return function;
}
Type::FunctionType*
VectorStoreICTrampolineDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 4, isolate->interface_descriptor_zone());
- function->InitParameter(0, AnyTagged());
- function->InitParameter(1, AnyTagged());
- function->InitParameter(2, AnyTagged());
- function->InitParameter(3, SmiType());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 4, zone);
+ function->InitParameter(0, AnyTagged(zone));
+ function->InitParameter(1, AnyTagged(zone));
+ function->InitParameter(2, AnyTagged(zone));
+ function->InitParameter(3, SmiType(zone));
return function;
}
Type::FunctionType*
ApiGetterDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 1, isolate->interface_descriptor_zone());
- function->InitParameter(0, ExternalPointer());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 1, zone);
+ function->InitParameter(0, ExternalPointer(zone));
return function;
}
Type::FunctionType*
FastCloneShallowArrayDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 3, isolate->interface_descriptor_zone());
- function->InitParameter(0, AnyTagged());
- function->InitParameter(1, SmiType());
- function->InitParameter(2, AnyTagged());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 3, zone);
+ function->InitParameter(0, AnyTagged(zone));
+ function->InitParameter(1, SmiType(zone));
+ function->InitParameter(2, AnyTagged(zone));
return function;
}
Type::FunctionType*
CreateAllocationSiteDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 2, isolate->interface_descriptor_zone());
- function->InitParameter(0, AnyTagged());
- function->InitParameter(1, SmiType());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 2, zone);
+ function->InitParameter(0, AnyTagged(zone));
+ function->InitParameter(1, SmiType(zone));
return function;
}
Type::FunctionType*
CreateWeakCellDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 3, isolate->interface_descriptor_zone());
- function->InitParameter(0, AnyTagged());
- function->InitParameter(1, SmiType());
- function->InitParameter(2, AnyTagged());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 3, zone);
+ function->InitParameter(0, AnyTagged(zone));
+ function->InitParameter(1, SmiType(zone));
+ function->InitParameter(2, AnyTagged(zone));
return function;
}
Type::FunctionType*
CallFunctionWithFeedbackDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 2, isolate->interface_descriptor_zone());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 2, zone);
function->InitParameter(0, Type::Receiver()); // JSFunction
- function->InitParameter(1, SmiType());
+ function->InitParameter(1, SmiType(zone));
return function;
}
Type::FunctionType* CallFunctionWithFeedbackAndVectorDescriptor::
BuildCallInterfaceDescriptorFunctionType(Isolate* isolate,
int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 3, isolate->interface_descriptor_zone());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 3, zone);
function->InitParameter(0, Type::Receiver()); // JSFunction
- function->InitParameter(1, SmiType());
- function->InitParameter(2, AnyTagged());
+ function->InitParameter(1, SmiType(zone));
+ function->InitParameter(2, AnyTagged(zone));
return function;
}
Type::FunctionType*
ArrayConstructorDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 3, isolate->interface_descriptor_zone());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 3, zone);
function->InitParameter(0, Type::Receiver()); // JSFunction
- function->InitParameter(1, AnyTagged());
- function->InitParameter(2, UntaggedSigned32());
+ function->InitParameter(1, AnyTagged(zone));
+ function->InitParameter(2, UntaggedSigned32(zone));
return function;
}
Type::FunctionType*
InternalArrayConstructorDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 2, isolate->interface_descriptor_zone());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 2, zone);
function->InitParameter(0, Type::Receiver()); // JSFunction
- function->InitParameter(1, UntaggedSigned32());
+ function->InitParameter(1, UntaggedSigned32(zone));
return function;
}
Type::FunctionType*
ArgumentAdaptorDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 3, isolate->interface_descriptor_zone());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 3, zone);
function->InitParameter(0, Type::Receiver()); // JSFunction
- function->InitParameter(1, UntaggedSigned32()); // actual number of arguments
- function->InitParameter(2,
- UntaggedSigned32()); // expected number of arguments
+ function->InitParameter(
+ 1, UntaggedSigned32(zone)); // actual number of arguments
+ function->InitParameter(
+ 2,
+ UntaggedSigned32(zone)); // expected number of arguments
return function;
}
Type::FunctionType*
ApiFunctionDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 5, isolate->interface_descriptor_zone());
- function->InitParameter(0, AnyTagged()); // callee
- function->InitParameter(1, AnyTagged()); // call_data
- function->InitParameter(2, AnyTagged()); // holder
- function->InitParameter(3, ExternalPointer()); // api_function_address
- function->InitParameter(4, UntaggedSigned32()); // actual number of arguments
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 5, zone);
+ function->InitParameter(0, AnyTagged(zone)); // callee
+ function->InitParameter(1, AnyTagged(zone)); // call_data
+ function->InitParameter(2, AnyTagged(zone)); // holder
+ function->InitParameter(3, ExternalPointer(zone)); // api_function_address
+ function->InitParameter(
+ 4, UntaggedSigned32(zone)); // actual number of arguments
return function;
}
Type::FunctionType*
ApiAccessorDescriptor::BuildCallInterfaceDescriptorFunctionType(
Isolate* isolate, int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 4, isolate->interface_descriptor_zone());
- function->InitParameter(0, AnyTagged()); // callee
- function->InitParameter(1, AnyTagged()); // call_data
- function->InitParameter(2, AnyTagged()); // holder
- function->InitParameter(3, ExternalPointer()); // api_function_address
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 4, zone);
+ function->InitParameter(0, AnyTagged(zone)); // callee
+ function->InitParameter(1, AnyTagged(zone)); // call_data
+ function->InitParameter(2, AnyTagged(zone)); // holder
+ function->InitParameter(3, ExternalPointer(zone)); // api_function_address
return function;
}
Type::FunctionType* MathRoundVariantCallFromUnoptimizedCodeDescriptor::
BuildCallInterfaceDescriptorFunctionType(Isolate* isolate,
int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 4, isolate->interface_descriptor_zone());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 4, zone);
function->InitParameter(0, Type::Receiver());
- function->InitParameter(1, SmiType());
- function->InitParameter(2, AnyTagged());
- function->InitParameter(3, AnyTagged());
+ function->InitParameter(1, SmiType(zone));
+ function->InitParameter(2, AnyTagged(zone));
+ function->InitParameter(3, AnyTagged(zone));
return function;
}
Type::FunctionType* MathRoundVariantCallFromOptimizedCodeDescriptor::
BuildCallInterfaceDescriptorFunctionType(Isolate* isolate,
int paramater_count) {
- Type::FunctionType* function = Type::FunctionType::New(
- AnyTagged(), Type::Undefined(), 5, isolate->interface_descriptor_zone());
+ Zone* zone = isolate->interface_descriptor_zone();
+ Type::FunctionType* function =
+ Type::FunctionType::New(AnyTagged(zone), Type::Undefined(), 5, zone);
function->InitParameter(0, Type::Receiver());
- function->InitParameter(1, SmiType());
- function->InitParameter(2, AnyTagged());
- function->InitParameter(3, AnyTagged());
- function->InitParameter(4, AnyTagged());
+ function->InitParameter(1, SmiType(zone));
+ function->InitParameter(2, AnyTagged(zone));
+ function->InitParameter(3, AnyTagged(zone));
+ function->InitParameter(4, AnyTagged(zone));
return function;
}
} // namespace internal