Line data Source code
1 : #ifndef V8_TORQUE_DATA_VIEW_FROM_DSL_BASE_H__
2 : #define V8_TORQUE_DATA_VIEW_FROM_DSL_BASE_H__
3 :
4 : #include "src/compiler/code-assembler.h"
5 : #include "src/code-stub-assembler.h"
6 : #include "src/utils.h"
7 : #include "torque-generated/class-definitions-from-dsl.h"
8 :
9 : namespace v8 {
10 : namespace internal {
11 :
12 6776 : class DataViewBuiltinsFromDSLAssembler {
13 : public:
14 6776 : explicit DataViewBuiltinsFromDSLAssembler(compiler::CodeAssemblerState* state) : state_(state), ca_(state) { USE(state_, ca_); }
15 : compiler::TNode<String> MakeDataViewGetterNameString(ElementsKind p_kind);
16 : compiler::TNode<String> MakeDataViewSetterNameString(ElementsKind p_kind);
17 : compiler::TNode<BoolT> WasNeutered(compiler::TNode<JSArrayBufferView> p_view);
18 : compiler::TNode<JSDataView> ValidateDataView(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o, compiler::TNode<String> p_method);
19 : compiler::TNode<Smi> LoadDataView8(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, bool p_signed);
20 : compiler::TNode<Number> LoadDataView16(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<BoolT> p_requestedLittleEndian, bool p_signed);
21 : compiler::TNode<Number> LoadDataView32(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<BoolT> p_requestedLittleEndian, ElementsKind p_kind);
22 : compiler::TNode<Number> LoadDataViewFloat64(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<BoolT> p_requestedLittleEndian);
23 : bool kPositiveBigInt();
24 : bool kNegativeBigInt();
25 : int31_t kZeroDigitBigInt();
26 : int31_t kOneDigitBigInt();
27 : int31_t kTwoDigitBigInt();
28 : compiler::TNode<BigInt> CreateEmptyBigInt(compiler::TNode<BoolT> p_isPositive, int31_t p_length);
29 : compiler::TNode<BigInt> MakeBigIntOn64Bit(compiler::TNode<Uint32T> p_lowWord, compiler::TNode<Uint32T> p_highWord, bool p_signed);
30 : compiler::TNode<BigInt> MakeBigIntOn32Bit(compiler::TNode<Uint32T> p_lowWord, compiler::TNode<Uint32T> p_highWord, bool p_signed);
31 : compiler::TNode<BigInt> MakeBigInt(compiler::TNode<Uint32T> p_lowWord, compiler::TNode<Uint32T> p_highWord, bool p_signed);
32 : compiler::TNode<BigInt> LoadDataViewBigInt(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<BoolT> p_requestedLittleEndian, bool p_signed);
33 : compiler::TNode<Numeric> DataViewGet(compiler::TNode<Context> p_context, compiler::TNode<Object> p_receiver, compiler::TNode<Object> p_offset, compiler::TNode<Object> p_requestedLittleEndian, ElementsKind p_kind);
34 : void StoreDataView8(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<Uint32T> p_value);
35 : void StoreDataView16(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<Uint32T> p_value, compiler::TNode<BoolT> p_requestedLittleEndian);
36 : void StoreDataView32(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<Uint32T> p_value, compiler::TNode<BoolT> p_requestedLittleEndian);
37 : void StoreDataView64(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<Uint32T> p_lowWord, compiler::TNode<Uint32T> p_highWord, compiler::TNode<BoolT> p_requestedLittleEndian);
38 : void StoreDataViewBigInt(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<BigInt> p_bigIntValue, compiler::TNode<BoolT> p_requestedLittleEndian);
39 : compiler::TNode<Object> DataViewSet(compiler::TNode<Context> p_context, compiler::TNode<Object> p_receiver, compiler::TNode<Object> p_offset, compiler::TNode<Object> p_value, compiler::TNode<Object> p_requestedLittleEndian, ElementsKind p_kind);
40 : private:
41 : compiler::CodeAssemblerState* const state_;
42 : compiler::CodeAssembler ca_;
43 : };
44 :
45 : } // namespace internal
46 : } // namespace v8
47 :
48 : #endif // V8_TORQUE_DATA_VIEW_FROM_DSL_BASE_H__
|