Commit e97dfa67 authored by Seth Brenith's avatar Seth Brenith Committed by Commit Bot

[torque] convert a handful of simple class layout definitions to Torque

I tried to use more specific union types where appropriate, even though
many of these fields are accessed as Object from C++.

Bug: v8:7793
Change-Id: I771d9b6459bdc1413019f8ff5ddfd611d1adf61f
Reviewed-on: https://chromium-review.googlesource.com/c/1490573
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59975}
parent d71374b1
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
#include 'src/objects.h' #include 'src/objects.h'
#include 'src/objects/arguments.h' #include 'src/objects/arguments.h'
#include 'src/objects/bigint.h' #include 'src/objects/bigint.h'
#include 'src/objects/js-generator.h'
#include 'src/objects/js-promise.h'
#include 'src/objects/module.h'
#include 'src/objects/stack-frame-info.h'
type Arguments constexpr 'CodeStubArguments*'; type Arguments constexpr 'CodeStubArguments*';
type void; type void;
...@@ -21,6 +25,9 @@ type Smi extends Tagged generates 'TNode<Smi>' constexpr 'Smi'; ...@@ -21,6 +25,9 @@ type Smi extends Tagged generates 'TNode<Smi>' constexpr 'Smi';
// A Smi that is greater than or equal to 0. See TaggedIsPositiveSmi. // A Smi that is greater than or equal to 0. See TaggedIsPositiveSmi.
type PositiveSmi extends Smi; type PositiveSmi extends Smi;
// The Smi value zero, which is often used as null for HeapObject types.
type Zero extends PositiveSmi;
extern class HeapObject extends Tagged { map: Map; } extern class HeapObject extends Tagged { map: Map; }
type Object = Smi | HeapObject; type Object = Smi | HeapObject;
...@@ -59,6 +66,15 @@ type Number = Smi | HeapNumber; ...@@ -59,6 +66,15 @@ type Number = Smi | HeapNumber;
type BigInt extends HeapObject generates 'TNode<BigInt>'; type BigInt extends HeapObject generates 'TNode<BigInt>';
type Numeric = Number | BigInt; type Numeric = Number | BigInt;
extern class Struct extends HeapObject {}
extern class Tuple2 extends Struct {
value_1: Object;
value_2: Object;
}
extern class Tuple3 extends Tuple2 { value_3: Object; }
// A direct string can be accessed directly through CSA without going into the // A direct string can be accessed directly through CSA without going into the
// C++ runtime. See also: ToDirectStringAssembler. // C++ runtime. See also: ToDirectStringAssembler.
type DirectString extends String; type DirectString extends String;
...@@ -298,6 +314,79 @@ type ToIntegerTruncationMode ...@@ -298,6 +314,79 @@ type ToIntegerTruncationMode
constexpr 'CodeStubAssembler::ToIntegerTruncationMode'; constexpr 'CodeStubAssembler::ToIntegerTruncationMode';
type AllocationFlags constexpr 'AllocationFlags'; type AllocationFlags constexpr 'AllocationFlags';
extern class Foreign extends HeapObject { foreign_address: RawPtr; }
extern class InterceptorInfo extends Struct {
getter: Foreign | Zero;
setter: Foreign | Zero;
query: Foreign | Zero;
descriptor: Foreign | Zero;
deleter: Foreign | Zero;
enumerator: Foreign | Zero;
definer: Foreign | Zero;
data: Object;
flags: Smi;
}
extern class AccessCheckInfo extends Struct {
callback: Foreign | Zero;
named_interceptor: InterceptorInfo | Zero;
indexed_interceptor: InterceptorInfo | Zero;
data: Object;
}
extern class ArrayBoilerplateDescription extends Struct {
flags: Smi;
constant_elements: FixedArrayBase;
}
extern class AliasedArgumentsEntry extends Struct { aliased_context_slot: Smi; }
extern class Cell extends HeapObject { value: Object; }
extern class DataHandler extends Struct {
smi_handler: Smi | Code;
validity_cell: Smi | Cell;
weak data_1: Object;
weak data_2: Object;
weak data_3: Object;
}
extern class JSPromise extends JSObject {
reactions_or_result: Object;
flags: Smi;
}
extern class Microtask extends Struct {}
extern class CallbackTask extends Microtask {
callback: Foreign;
data: Foreign;
}
extern class CallableTask extends Microtask {
callable: JSReceiver;
context: Context;
}
extern class StackFrameInfo extends Struct {
line_number: Smi;
column_number: Smi;
script_id: Smi;
script_name: Object;
script_name_or_source_url: Object;
function_name: Object;
flag: Smi;
id: Smi;
}
extern class ClassPositions extends Struct {
start: Smi;
end: Smi;
}
extern class WasmExceptionTag extends Struct { index: Smi; }
const kSmiTagSize: constexpr int31 generates 'kSmiTagSize'; const kSmiTagSize: constexpr int31 generates 'kSmiTagSize';
const NO_ELEMENTS: constexpr ElementsKind generates 'NO_ELEMENTS'; const NO_ELEMENTS: constexpr ElementsKind generates 'NO_ELEMENTS';
...@@ -480,6 +569,36 @@ const INTPTR_PARAMETERS: constexpr ParameterMode ...@@ -480,6 +569,36 @@ const INTPTR_PARAMETERS: constexpr ParameterMode
const SKIP_WRITE_BARRIER: const SKIP_WRITE_BARRIER:
constexpr WriteBarrierMode generates 'SKIP_WRITE_BARRIER'; constexpr WriteBarrierMode generates 'SKIP_WRITE_BARRIER';
extern class AsyncGeneratorRequest extends Struct {
next: AsyncGeneratorRequest | Undefined;
resume_mode: Smi;
value: Object;
promise: JSPromise;
}
extern class ModuleInfoEntry extends Struct {
export_name: String | Undefined;
local_name: String | Undefined;
import_name: String | Undefined;
module_request: Smi;
cell_index: Smi;
beg_pos: Smi;
end_pos: Smi;
}
extern class PromiseCapability extends Struct {
promise: JSReceiver | Undefined;
resolve: Object;
reject: Object;
}
extern class PromiseReaction extends Struct {
next: PromiseReaction | Zero;
reject_handler: Callable | Undefined;
fulfill_handler: Callable | Undefined;
promise_or_capability: JSPromise | PromiseCapability | Undefined;
}
extern macro Is64(): constexpr bool; extern macro Is64(): constexpr bool;
extern macro SelectBooleanConstant(bool): Boolean; extern macro SelectBooleanConstant(bool): Boolean;
......
...@@ -692,7 +692,7 @@ void Map::DictionaryMapVerify(Isolate* isolate) { ...@@ -692,7 +692,7 @@ void Map::DictionaryMapVerify(Isolate* isolate) {
} }
void AliasedArgumentsEntry::AliasedArgumentsEntryVerify(Isolate* isolate) { void AliasedArgumentsEntry::AliasedArgumentsEntryVerify(Isolate* isolate) {
VerifySmiField(kAliasedContextSlot); VerifySmiField(kAliasedContextSlotOffset);
} }
void EmbedderDataArray::EmbedderDataArrayVerify(Isolate* isolate) { void EmbedderDataArray::EmbedderDataArrayVerify(Isolate* isolate) {
......
...@@ -126,17 +126,8 @@ class AccessCheckInfo : public Struct { ...@@ -126,17 +126,8 @@ class AccessCheckInfo : public Struct {
static AccessCheckInfo Get(Isolate* isolate, Handle<JSObject> receiver); static AccessCheckInfo Get(Isolate* isolate, Handle<JSObject> receiver);
// Layout description.
#define ACCESS_CHECK_INFO_FIELDS(V) \
V(kCallbackOffset, kTaggedSize) \
V(kNamedInterceptorOffset, kTaggedSize) \
V(kIndexedInterceptorOffset, kTaggedSize) \
V(kDataOffset, kTaggedSize) \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize, DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize,
ACCESS_CHECK_INFO_FIELDS) ACCESS_CHECK_INFO_FIELDS)
#undef ACCESS_CHECK_INFO_FIELDS
OBJECT_CONSTRUCTORS(AccessCheckInfo, Struct); OBJECT_CONSTRUCTORS(AccessCheckInfo, Struct);
}; };
...@@ -166,22 +157,8 @@ class InterceptorInfo : public Struct { ...@@ -166,22 +157,8 @@ class InterceptorInfo : public Struct {
DECL_PRINTER(InterceptorInfo) DECL_PRINTER(InterceptorInfo)
DECL_VERIFIER(InterceptorInfo) DECL_VERIFIER(InterceptorInfo)
// Layout description.
#define INTERCEPTOR_INFO_FIELDS(V) \
V(kGetterOffset, kTaggedSize) \
V(kSetterOffset, kTaggedSize) \
V(kQueryOffset, kTaggedSize) \
V(kDescriptorOffset, kTaggedSize) \
V(kDeleterOffset, kTaggedSize) \
V(kEnumeratorOffset, kTaggedSize) \
V(kDefinerOffset, kTaggedSize) \
V(kDataOffset, kTaggedSize) \
V(kFlagsOffset, kTaggedSize) \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize, DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize,
INTERCEPTOR_INFO_FIELDS) INTERCEPTOR_INFO_FIELDS)
#undef INTERCEPTOR_INFO_FIELDS
static const int kCanInterceptSymbolsBit = 0; static const int kCanInterceptSymbolsBit = 0;
static const int kAllCanReadBit = 1; static const int kAllCanReadBit = 1;
......
...@@ -26,7 +26,8 @@ CAST_ACCESSOR(AliasedArgumentsEntry) ...@@ -26,7 +26,8 @@ CAST_ACCESSOR(AliasedArgumentsEntry)
CAST_ACCESSOR(SloppyArgumentsElements) CAST_ACCESSOR(SloppyArgumentsElements)
CAST_ACCESSOR(JSArgumentsObject) CAST_ACCESSOR(JSArgumentsObject)
SMI_ACCESSORS(AliasedArgumentsEntry, aliased_context_slot, kAliasedContextSlot) SMI_ACCESSORS(AliasedArgumentsEntry, aliased_context_slot,
kAliasedContextSlotOffset)
Context SloppyArgumentsElements::context() { Context SloppyArgumentsElements::context() {
return Context::cast(get(kContextIndex)); return Context::cast(get(kContextIndex));
......
...@@ -140,15 +140,8 @@ class AliasedArgumentsEntry : public Struct { ...@@ -140,15 +140,8 @@ class AliasedArgumentsEntry : public Struct {
DECL_PRINTER(AliasedArgumentsEntry) DECL_PRINTER(AliasedArgumentsEntry)
DECL_VERIFIER(AliasedArgumentsEntry) DECL_VERIFIER(AliasedArgumentsEntry)
// Layout description.
#define ALIASED_ARGUMENTS_FIELDS(V) \
V(kAliasedContextSlot, kTaggedSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize, DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize,
ALIASED_ARGUMENTS_FIELDS) ALIASED_ARGUMENTS_ENTRY_FIELDS)
#undef ALIASED_ARGUMENTS_FIELDS
OBJECT_CONSTRUCTORS(AliasedArgumentsEntry, Struct); OBJECT_CONSTRUCTORS(AliasedArgumentsEntry, Struct);
}; };
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#define V8_OBJECTS_CELL_H_ #define V8_OBJECTS_CELL_H_
#include "src/objects/heap-object.h" #include "src/objects/heap-object.h"
#include "torque-generated/class-definitions-from-dsl.h"
// Has to be the last include (doesn't have include guards): // Has to be the last include (doesn't have include guards):
#include "src/objects/object-macros.h" #include "src/objects/object-macros.h"
...@@ -28,14 +29,7 @@ class Cell : public HeapObject { ...@@ -28,14 +29,7 @@ class Cell : public HeapObject {
DECL_PRINTER(Cell) DECL_PRINTER(Cell)
DECL_VERIFIER(Cell) DECL_VERIFIER(Cell)
// Layout description.
#define CELL_FIELDS(V) \
V(kValueOffset, kTaggedSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize, CELL_FIELDS) DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize, CELL_FIELDS)
#undef CELL_FIELDS
typedef FixedBodyDescriptor<kValueOffset, kSize, kSize> BodyDescriptor; typedef FixedBodyDescriptor<kValueOffset, kSize, kSize> BodyDescriptor;
......
...@@ -35,20 +35,12 @@ class DataHandler : public Struct { ...@@ -35,20 +35,12 @@ class DataHandler : public Struct {
DECL_ACCESSORS(data2, MaybeObject) DECL_ACCESSORS(data2, MaybeObject)
DECL_ACCESSORS(data3, MaybeObject) DECL_ACCESSORS(data3, MaybeObject)
// Layout description.
#define DATA_HANDLER_FIELDS(V) \
V(kSmiHandlerOffset, kTaggedSize) \
V(kValidityCellOffset, kTaggedSize) \
V(kSizeWithData0, 0) \
V(kData1Offset, kTaggedSize) \
V(kSizeWithData1, 0) \
V(kData2Offset, kTaggedSize) \
V(kSizeWithData2, 0) \
V(kData3Offset, kTaggedSize) \
V(kSizeWithData3, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize, DATA_HANDLER_FIELDS) DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize, DATA_HANDLER_FIELDS)
#undef DATA_HANDLER_FIELDS
static const int kSizeWithData0 = kData1Offset;
static const int kSizeWithData1 = kData2Offset;
static const int kSizeWithData2 = kData3Offset;
static const int kSizeWithData3 = kSize;
DECL_CAST(DataHandler) DECL_CAST(DataHandler)
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#define V8_OBJECTS_FOREIGN_H_ #define V8_OBJECTS_FOREIGN_H_
#include "src/objects/heap-object.h" #include "src/objects/heap-object.h"
#include "torque-generated/class-definitions-from-dsl.h"
// Has to be the last include (doesn't have include guards): // Has to be the last include (doesn't have include guards):
#include "src/objects/object-macros.h" #include "src/objects/object-macros.h"
...@@ -27,14 +28,7 @@ class Foreign : public HeapObject { ...@@ -27,14 +28,7 @@ class Foreign : public HeapObject {
DECL_PRINTER(Foreign) DECL_PRINTER(Foreign)
DECL_VERIFIER(Foreign) DECL_VERIFIER(Foreign)
// Layout description.
#define FOREIGN_FIELDS(V) \
V(kForeignAddressOffset, kSystemPointerSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize, FOREIGN_FIELDS) DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize, FOREIGN_FIELDS)
#undef FOREIGN_FIELDS
STATIC_ASSERT(IsAligned(kForeignAddressOffset, kSystemPointerSize)); STATIC_ASSERT(IsAligned(kForeignAddressOffset, kSystemPointerSize));
STATIC_ASSERT(kForeignAddressOffset == Internals::kForeignAddressOffset); STATIC_ASSERT(kForeignAddressOffset == Internals::kForeignAddressOffset);
......
...@@ -146,18 +146,8 @@ class AsyncGeneratorRequest : public Struct { ...@@ -146,18 +146,8 @@ class AsyncGeneratorRequest : public Struct {
DECL_ACCESSORS(value, Object) DECL_ACCESSORS(value, Object)
DECL_ACCESSORS(promise, Object) DECL_ACCESSORS(promise, Object)
// Layout description.
#define ASYNC_GENERATOR_REQUEST_FIELDS(V) \
V(kNextOffset, kTaggedSize) \
V(kResumeModeOffset, kTaggedSize) \
V(kValueOffset, kTaggedSize) \
V(kPromiseOffset, kTaggedSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(Struct::kHeaderSize, DEFINE_FIELD_OFFSET_CONSTANTS(Struct::kHeaderSize,
ASYNC_GENERATOR_REQUEST_FIELDS) ASYNC_GENERATOR_REQUEST_FIELDS)
#undef ASYNC_GENERATOR_REQUEST_FIELDS
DECL_CAST(AsyncGeneratorRequest) DECL_CAST(AsyncGeneratorRequest)
DECL_PRINTER(AsyncGeneratorRequest) DECL_PRINTER(AsyncGeneratorRequest)
......
...@@ -68,14 +68,7 @@ class JSPromise : public JSObject { ...@@ -68,14 +68,7 @@ class JSPromise : public JSObject {
DECL_PRINTER(JSPromise) DECL_PRINTER(JSPromise)
DECL_VERIFIER(JSPromise) DECL_VERIFIER(JSPromise)
#define JS_PROMISE_FIELDS(V) \ DEFINE_FIELD_OFFSET_CONSTANTS(JSObject::kHeaderSize, JSPROMISE_FIELDS)
V(kReactionsOrResultOffset, kTaggedSize) \
V(kFlagsOffset, kTaggedSize) \
/* Header size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(JSObject::kHeaderSize, JS_PROMISE_FIELDS)
#undef JS_PROMISE_FIELDS
static const int kSizeWithEmbedderFields = static const int kSizeWithEmbedderFields =
kSize + v8::Promise::kEmbedderFieldCount * kEmbedderDataSlotSize; kSize + v8::Promise::kEmbedderFieldCount * kEmbedderDataSlotSize;
......
...@@ -68,15 +68,8 @@ class ArrayBoilerplateDescription : public Struct { ...@@ -68,15 +68,8 @@ class ArrayBoilerplateDescription : public Struct {
DECL_VERIFIER(ArrayBoilerplateDescription) DECL_VERIFIER(ArrayBoilerplateDescription)
void BriefPrintDetails(std::ostream& os); void BriefPrintDetails(std::ostream& os);
#define ARRAY_BOILERPLATE_DESCRIPTION_FIELDS(V) \
V(kFlagsOffset, kTaggedSize) \
V(kConstantElementsOffset, kTaggedSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize, DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize,
ARRAY_BOILERPLATE_DESCRIPTION_FIELDS) ARRAY_BOILERPLATE_DESCRIPTION_FIELDS)
#undef ARRAY_BOILERPLATE_DESCRIPTION_FIELDS
private: private:
DECL_INT_ACCESSORS(flags) DECL_INT_ACCESSORS(flags)
......
...@@ -34,15 +34,7 @@ class CallbackTask : public Microtask { ...@@ -34,15 +34,7 @@ class CallbackTask : public Microtask {
DECL_ACCESSORS(callback, Foreign) DECL_ACCESSORS(callback, Foreign)
DECL_ACCESSORS(data, Foreign) DECL_ACCESSORS(data, Foreign)
// Layout description.
#define CALLBACK_TASK_FIELDS(V) \
V(kCallbackOffset, kTaggedSize) \
V(kDataOffset, kTaggedSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(Microtask::kHeaderSize, CALLBACK_TASK_FIELDS) DEFINE_FIELD_OFFSET_CONSTANTS(Microtask::kHeaderSize, CALLBACK_TASK_FIELDS)
#undef CALLBACK_TASK_FIELDS
// Dispatched behavior. // Dispatched behavior.
DECL_CAST(CallbackTask) DECL_CAST(CallbackTask)
...@@ -60,15 +52,7 @@ class CallableTask : public Microtask { ...@@ -60,15 +52,7 @@ class CallableTask : public Microtask {
DECL_ACCESSORS(callable, JSReceiver) DECL_ACCESSORS(callable, JSReceiver)
DECL_ACCESSORS(context, Context) DECL_ACCESSORS(context, Context)
// Layout description.
#define CALLABLE_TASK_FIELDS(V) \
V(kCallableOffset, kTaggedSize) \
V(kContextOffset, kTaggedSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(Microtask::kHeaderSize, CALLABLE_TASK_FIELDS) DEFINE_FIELD_OFFSET_CONSTANTS(Microtask::kHeaderSize, CALLABLE_TASK_FIELDS)
#undef CALLABLE_TASK_FIELDS
// Dispatched behavior. // Dispatched behavior.
DECL_CAST(CallableTask) DECL_CAST(CallableTask)
......
...@@ -333,20 +333,7 @@ class ModuleInfoEntry : public Struct { ...@@ -333,20 +333,7 @@ class ModuleInfoEntry : public Struct {
int module_request, int cell_index, int module_request, int cell_index,
int beg_pos, int end_pos); int beg_pos, int end_pos);
// Layout description. DEFINE_FIELD_OFFSET_CONSTANTS(Struct::kHeaderSize, MODULE_INFO_ENTRY_FIELDS)
#define MODULE_INFO_FIELDS(V) \
V(kExportNameOffset, kTaggedSize) \
V(kLocalNameOffset, kTaggedSize) \
V(kImportNameOffset, kTaggedSize) \
V(kModuleRequestOffset, kTaggedSize) \
V(kCellIndexOffset, kTaggedSize) \
V(kBegPosOffset, kTaggedSize) \
V(kEndPosOffset, kTaggedSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(Struct::kHeaderSize, MODULE_INFO_FIELDS)
#undef MODULE_INFO_FIELDS
OBJECT_CONSTRUCTORS(ModuleInfoEntry, Struct); OBJECT_CONSTRUCTORS(ModuleInfoEntry, Struct);
}; };
......
...@@ -111,16 +111,7 @@ class PromiseCapability : public Struct { ...@@ -111,16 +111,7 @@ class PromiseCapability : public Struct {
DECL_ACCESSORS(resolve, Object) DECL_ACCESSORS(resolve, Object)
DECL_ACCESSORS(reject, Object) DECL_ACCESSORS(reject, Object)
// Layout description.
#define PROMISE_CAPABILITY_FIELDS(V) \
V(kPromiseOffset, kTaggedSize) \
V(kResolveOffset, kTaggedSize) \
V(kRejectOffset, kTaggedSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(Struct::kHeaderSize, PROMISE_CAPABILITY_FIELDS) DEFINE_FIELD_OFFSET_CONSTANTS(Struct::kHeaderSize, PROMISE_CAPABILITY_FIELDS)
#undef PROMISE_CAPABILITY_FIELDS
// Dispatched behavior. // Dispatched behavior.
DECL_CAST(PromiseCapability) DECL_CAST(PromiseCapability)
...@@ -158,17 +149,7 @@ class PromiseReaction : public Struct { ...@@ -158,17 +149,7 @@ class PromiseReaction : public Struct {
// a PromiseCapability (general case), or undefined (in case of await). // a PromiseCapability (general case), or undefined (in case of await).
DECL_ACCESSORS(promise_or_capability, HeapObject) DECL_ACCESSORS(promise_or_capability, HeapObject)
// Layout description.
#define PROMISE_REACTION_FIELDS(V) \
V(kNextOffset, kTaggedSize) \
V(kRejectHandlerOffset, kTaggedSize) \
V(kFulfillHandlerOffset, kTaggedSize) \
V(kPromiseOrCapabilityOffset, kTaggedSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(Struct::kHeaderSize, PROMISE_REACTION_FIELDS) DEFINE_FIELD_OFFSET_CONSTANTS(Struct::kHeaderSize, PROMISE_REACTION_FIELDS)
#undef PROMISE_REACTION_FIELDS
// Dispatched behavior. // Dispatched behavior.
DECL_CAST(PromiseReaction) DECL_CAST(PromiseReaction)
......
...@@ -36,21 +36,7 @@ class StackFrameInfo : public Struct { ...@@ -36,21 +36,7 @@ class StackFrameInfo : public Struct {
DECL_PRINTER(StackFrameInfo) DECL_PRINTER(StackFrameInfo)
DECL_VERIFIER(StackFrameInfo) DECL_VERIFIER(StackFrameInfo)
// Layout description.
#define STACK_FRAME_INFO_FIELDS(V) \
V(kLineNumberOffset, kTaggedSize) \
V(kColumnNumberOffset, kTaggedSize) \
V(kScriptIdOffset, kTaggedSize) \
V(kScriptNameOffset, kTaggedSize) \
V(kScriptNameOrSourceUrlOffset, kTaggedSize) \
V(kFunctionNameOffset, kTaggedSize) \
V(kFlagOffset, kTaggedSize) \
V(kIdOffset, kTaggedSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(Struct::kHeaderSize, STACK_FRAME_INFO_FIELDS) DEFINE_FIELD_OFFSET_CONSTANTS(Struct::kHeaderSize, STACK_FRAME_INFO_FIELDS)
#undef STACK_FRAME_INFO_FIELDS
private: private:
// Bit position in the flag, from least significant bit position. // Bit position in the flag, from least significant bit position.
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "src/objects.h" #include "src/objects.h"
#include "src/objects/heap-object.h" #include "src/objects/heap-object.h"
#include "torque-generated/class-definitions-from-dsl.h"
// Has to be the last include (doesn't have include guards): // Has to be the last include (doesn't have include guards):
#include "src/objects/object-macros.h" #include "src/objects/object-macros.h"
...@@ -38,15 +39,8 @@ class Tuple2 : public Struct { ...@@ -38,15 +39,8 @@ class Tuple2 : public Struct {
DECL_VERIFIER(Tuple2) DECL_VERIFIER(Tuple2)
void BriefPrintDetails(std::ostream& os); void BriefPrintDetails(std::ostream& os);
// Layout description.
#define TUPLE2_FIELDS(V) \
V(kValue1Offset, kTaggedSize) \
V(kValue2Offset, kTaggedSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize, TUPLE2_FIELDS) DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize, TUPLE2_FIELDS)
#undef TUPLE2_FIELDS
OBJECT_CONSTRUCTORS(Tuple2, Struct); OBJECT_CONSTRUCTORS(Tuple2, Struct);
}; };
...@@ -62,14 +56,7 @@ class Tuple3 : public Tuple2 { ...@@ -62,14 +56,7 @@ class Tuple3 : public Tuple2 {
DECL_VERIFIER(Tuple3) DECL_VERIFIER(Tuple3)
void BriefPrintDetails(std::ostream& os); void BriefPrintDetails(std::ostream& os);
// Layout description.
#define TUPLE3_FIELDS(V) \
V(kValue3Offset, kTaggedSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(Tuple2::kSize, TUPLE3_FIELDS) DEFINE_FIELD_OFFSET_CONSTANTS(Tuple2::kSize, TUPLE3_FIELDS)
#undef TUPLE3_FIELDS
OBJECT_CONSTRUCTORS(Tuple3, Tuple2); OBJECT_CONSTRUCTORS(Tuple3, Tuple2);
}; };
...@@ -131,15 +118,7 @@ class ClassPositions : public Struct { ...@@ -131,15 +118,7 @@ class ClassPositions : public Struct {
DECL_VERIFIER(ClassPositions) DECL_VERIFIER(ClassPositions)
void BriefPrintDetails(std::ostream& os); void BriefPrintDetails(std::ostream& os);
// Layout description.
#define CLASS_POSITIONS_FIELDS(V) \
V(kStartOffset, kTaggedSize) \
V(kEndOffset, kTaggedSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize, CLASS_POSITIONS_FIELDS) DEFINE_FIELD_OFFSET_CONSTANTS(HeapObject::kHeaderSize, CLASS_POSITIONS_FIELDS)
#undef CLASS_POSITIONS_FIELDS
OBJECT_CONSTRUCTORS(ClassPositions, Struct); OBJECT_CONSTRUCTORS(ClassPositions, Struct);
}; };
......
...@@ -107,8 +107,8 @@ void ImplementationVisitor::EndNamespaceFile(Namespace* nspace) { ...@@ -107,8 +107,8 @@ void ImplementationVisitor::EndNamespaceFile(Namespace* nspace) {
header << " private:\n" header << " private:\n"
<< " compiler::CodeAssemblerState* const state_;\n" << " compiler::CodeAssemblerState* const state_;\n"
<< " compiler::CodeAssembler ca_;" << " compiler::CodeAssembler ca_;\n"
<< "}; \n\n"; << "};\n\n";
header << "} // namespace internal\n" header << "} // namespace internal\n"
<< "} // namespace v8\n" << "} // namespace v8\n"
<< "\n"; << "\n";
......
...@@ -758,14 +758,7 @@ class WasmExceptionTag : public Struct { ...@@ -758,14 +758,7 @@ class WasmExceptionTag : public Struct {
DECL_PRINTER(WasmExceptionTag) DECL_PRINTER(WasmExceptionTag)
DECL_VERIFIER(WasmExceptionTag) DECL_VERIFIER(WasmExceptionTag)
// Layout description.
#define WASM_EXCEPTION_TAG_FIELDS(V) \
V(kIndexOffset, kTaggedSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(Struct::kHeaderSize, WASM_EXCEPTION_TAG_FIELDS) DEFINE_FIELD_OFFSET_CONSTANTS(Struct::kHeaderSize, WASM_EXCEPTION_TAG_FIELDS)
#undef WASM_EXCEPTION_TAG_FIELDS
OBJECT_CONSTRUCTORS(WasmExceptionTag, Struct); OBJECT_CONSTRUCTORS(WasmExceptionTag, Struct);
}; };
......
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