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 :
7 : namespace v8 {
8 : namespace internal {
9 :
10 6776 : class DataViewBuiltinsFromDSLAssembler {
11 : public:
12 6776 : explicit DataViewBuiltinsFromDSLAssembler(compiler::CodeAssemblerState* state) : state_(state), ca_(state) { USE(state_, ca_); }
13 : compiler::TNode<String> MakeDataViewGetterNameString(ElementsKind p_kind);
14 : compiler::TNode<String> MakeDataViewSetterNameString(ElementsKind p_kind);
15 : compiler::TNode<BoolT> WasNeutered(compiler::TNode<JSArrayBufferView> p_view);
16 : compiler::TNode<JSDataView> ValidateDataView(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o, compiler::TNode<String> p_method);
17 : compiler::TNode<Smi> LoadDataView8(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, bool p_signed);
18 : compiler::TNode<Number> LoadDataView16(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<BoolT> p_requestedLittleEndian, bool p_signed);
19 : compiler::TNode<Number> LoadDataView32(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<BoolT> p_requestedLittleEndian, ElementsKind p_kind);
20 : compiler::TNode<Number> LoadDataViewFloat64(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<BoolT> p_requestedLittleEndian);
21 : bool kPositiveBigInt();
22 : bool kNegativeBigInt();
23 : int31_t kZeroDigitBigInt();
24 : int31_t kOneDigitBigInt();
25 : int31_t kTwoDigitBigInt();
26 : compiler::TNode<BigInt> CreateEmptyBigInt(compiler::TNode<BoolT> p_isPositive, int31_t p_length);
27 : compiler::TNode<BigInt> MakeBigIntOn64Bit(compiler::TNode<Uint32T> p_lowWord, compiler::TNode<Uint32T> p_highWord, bool p_signed);
28 : compiler::TNode<BigInt> MakeBigIntOn32Bit(compiler::TNode<Uint32T> p_lowWord, compiler::TNode<Uint32T> p_highWord, bool p_signed);
29 : compiler::TNode<BigInt> MakeBigInt(compiler::TNode<Uint32T> p_lowWord, compiler::TNode<Uint32T> p_highWord, bool p_signed);
30 : compiler::TNode<BigInt> LoadDataViewBigInt(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<BoolT> p_requestedLittleEndian, bool p_signed);
31 : 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);
32 : void StoreDataView8(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<Uint32T> p_value);
33 : void StoreDataView16(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<Uint32T> p_value, compiler::TNode<BoolT> p_requestedLittleEndian);
34 : void StoreDataView32(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<Uint32T> p_value, compiler::TNode<BoolT> p_requestedLittleEndian);
35 : 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);
36 : void StoreDataViewBigInt(compiler::TNode<JSArrayBuffer> p_buffer, compiler::TNode<UintPtrT> p_offset, compiler::TNode<BigInt> p_bigIntValue, compiler::TNode<BoolT> p_requestedLittleEndian);
37 : 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);
38 : private:
39 : compiler::CodeAssemblerState* const state_;
40 : compiler::CodeAssembler ca_;};
41 :
42 : } // namespace internal
43 : } // namespace v8
44 :
45 : #endif // V8_TORQUE_DATA_VIEW_FROM_DSL_BASE_H__
|