/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/include/cg/ |
H A D | isel.h | 45 Operand *HandleExpr(const BaseNode &parent, BaseNode &expr); 47 void SelectDassign(const DassignNode &stmt, Operand &opndRhs); 48 void SelectIassign(const IassignNode &stmt, Operand &opndAddr, Operand &opndRhs); 50 void SelectRegassign(RegassignNode &stmt, Operand &opnd0); 51 Operand *SelectDread(const BaseNode &parent, const AddrofNode &expr); 52 Operand *SelectBand(const BinaryNode &node, Operand &opnd0, Operand &opnd1, const BaseNode &parent); 53 Operand *SelectAd [all...] |
H A D | cgfunc.h | 174 Operand *HandleExpr(const BaseNode &parent, BaseNode &expr); 176 virtual void SelectDassign(DassignNode &stmt, Operand &opnd0) = 0; 177 virtual void SelectRegassign(RegassignNode &stmt, Operand &opnd0) = 0; 179 virtual void SelectReturn(Operand *opnd) = 0; 180 virtual void SelectCondGoto(CondGotoNode &stmt, Operand &opnd0, Operand &opnd1) = 0; 187 virtual Operand *SelectCclz(IntrinsicopNode &intrinsicopNode) = 0; 191 virtual Operand *SelectDread(const BaseNode &parent, AddrofNode &expr) = 0; 193 virtual Operand *SelectIread(const BaseNode &parent, IreadNode &expr, int extraOffset = 0, 195 virtual Operand *SelectIntCons [all...] |
H A D | cg_irbuilder.h | 38 Insn &BuildInsn(MOperator opCode, Operand &o0); 39 Insn &BuildInsn(MOperator opCode, Operand &o0, Operand &o1); 40 Insn &BuildInsn(MOperator opCode, Operand &o0, Operand &o1, Operand &o2); 41 Insn &BuildInsn(MOperator opCode, Operand &o0, Operand &o1, Operand &o2, Operand [all...] |
H A D | cfi.h | 66 CfiInsn(MemPool &memPool, maplebe::MOperator op, maplebe::Operand &opnd0) : Insn(memPool, op, opnd0) {} in CfiInsn() 68 CfiInsn(MemPool &memPool, maplebe::MOperator op, maplebe::Operand &opnd0, maplebe::Operand &opnd1) in CfiInsn() 73 CfiInsn(MemPool &memPool, maplebe::MOperator op, maplebe::Operand &opnd0, maplebe::Operand &opnd1, in CfiInsn() 74 maplebe::Operand &opnd2) in CfiInsn() 140 Operand *Clone(MemPool &memPool) const override 142 Operand *opnd = memPool.Clone<RegOperand>(*this); 148 bool Less(const Operand &right) const override 171 Operand *Clon [all...] |
H A D | insn.h | 61 Insn(MemPool &memPool, MOperator opc, Operand &opnd0) : Insn(memPool, opc) in Insn() 65 Insn(MemPool &memPool, MOperator opc, Operand &opnd0, Operand &opnd1) : Insn(memPool, opc) in Insn() 70 Insn(MemPool &memPool, MOperator opc, Operand &opnd0, Operand &opnd1, Operand &opnd2) : Insn(memPool, opc) in Insn() 76 Insn(MemPool &memPool, MOperator opc, Operand &opnd0, Operand &opnd1, Operand &opnd2, Operand in Insn() [all...] |
H A D | operand.h | 54 class Operand { class 74 Operand(OperandType type, uint32 size) : opndKind(type), size(size) {} in Operand() function in maplebe::Operand 75 virtual ~Operand() = default; 193 virtual Operand *CloneTree(MapleAllocator &allocator) const = 0; 194 virtual Operand *Clone(MemPool &memPool) const = 0; 200 virtual bool Equals(Operand &op) const in Equals() 205 bool BasicEquals(const Operand &op) const in BasicEquals() 212 virtual bool Less(const Operand &right) const = 0; 227 class OperandVisitable : public Operand { 229 using Operand [all...] |
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/include/cg/x86_64/ |
H A D | x64_cgfunc.h | 43 void SelectDassign(DassignNode &stmt, Operand &opnd0) override; 44 void SelectRegassign(RegassignNode &stmt, Operand &opnd0) override; 46 void SelectReturn(Operand *opnd) override; 47 void SelectCondGoto(CondGotoNode &stmt, Operand &opnd0, Operand &opnd1) override; 54 Operand *SelectCclz(IntrinsicopNode &intrinopNode) override; 56 Operand *SelectDread(const BaseNode &parent, AddrofNode &expr) override; 58 Operand *SelectIread(const BaseNode &parent, IreadNode &expr, int extraOffset = 0, 60 Operand *SelectIntConst(const MIRIntConst &intConst, const BaseNode &parent) override; 61 Operand *SelectFloatCons [all...] |
H A D | x64_MPISel.h | 27 void SelectReturn(NaryStmtNode &retNode, Operand &opnd) override; 31 Operand &ProcessReturnReg(PrimType primType, int32 sReg) override; 32 Operand &GetTargetRetOperand(PrimType primType, int32 sReg) override; 33 Operand *SelectFloatingConst(MIRConst &floatingConst, PrimType primType) const override; 36 void SelectRangeGoto(RangeGotoNode &rangeGotoNode, Operand &srcOpnd) override; 37 void SelectCondGoto(CondGotoNode &stmt, BaseNode &condNode, Operand &opnd0) override; 38 Operand *SelectDiv(BinaryNode &node, Operand &opnd0, Operand &opnd1, const BaseNode &parent) override; 39 Operand *SelectRe [all...] |
H A D | x64_emitter.h | 34 assembler::Reg TransferReg(Operand *opnd) const; 35 std::pair<int64, bool> TransferImm(Operand *opnd); 36 assembler::Mem TransferMem(Operand *opnd, uint32 funcUniqueId); 37 int64 TransferLabel(Operand *opnd, uint32 funcUniqueId); 38 uint32 TransferFuncName(Operand *opnd);
|
H A D | x64_isa_tbl.h | 27 static const X64MOP_t cmpIselMap##SIZE[Operand::OperandType::kOpdPhi][Operand::OperandType::kOpdPhi] = { \ 38 static inline X64MOP_t GetCmpMop(Operand::OperandType dTy, Operand::OperandType sTy, PrimType primType) in GetCmpMop() 70 using SetIselMappingType = std::unordered_map<maple::Opcode, std::array<X64MOP_t, Operand::OperandType::kOpdPhi>>; 85 static inline X64MOP_t GetSetCCMop(maple::Opcode opcode, Operand::OperandType dTy, bool isSigned, bool isFloat) in GetSetCCMop() 87 DEBUG_ASSERT(dTy < Operand::OperandType::kOpdPhi, "illegal operand type"); in GetSetCCMop()
|
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/src/cg/x86_64/ |
H A D | x64_cgfunc.cpp | 27 void X64CGFunc::SelectDassign(DassignNode &stmt, Operand &opnd0) in SelectDassign() 31 void X64CGFunc::SelectRegassign(RegassignNode &stmt, Operand &opnd0) in SelectRegassign() 39 void X64CGFunc::SelectReturn(Operand *opnd) in SelectReturn() 43 void X64CGFunc::SelectCondGoto(CondGotoNode &stmt, Operand &opnd0, Operand &opnd1) in SelectCondGoto() 71 Operand *X64CGFunc::SelectCclz(IntrinsicopNode &intrinopNode) in SelectCclz() 80 Operand *X64CGFunc::SelectDread(const BaseNode &parent, AddrofNode &expr) in SelectDread() 90 Operand *X64CGFunc::SelectIread(const BaseNode &parent, IreadNode &expr, int extraOffset, in SelectIread() 96 Operand *X64CGFunc::SelectIntConst(const MIRIntConst &intConst, const BaseNode &parent) in SelectIntConst() 101 Operand *X64CGFun in SelectIntConst() [all...] |
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/include/cg/aarch64/ |
H A D | aarch64_cgfunc.h | 90 void SelectDassign(DassignNode &stmt, Operand &opnd0) override; 91 void SelectRegassign(RegassignNode &stmt, Operand &opnd0) override; 93 void SelectReturn(Operand *opnd0) override; 95 void SelectParmListPassByStack(const MIRType &mirType, Operand &opnd, uint32 memOffset, bool preCopyed, 97 void SelectCondGoto(CondGotoNode &stmt, Operand &opnd0, Operand &opnd1) override; 98 void SelectCondGoto(LabelOperand &targetOpnd, Opcode jmpOp, Opcode cmpOp, Operand &opnd0, Operand &opnd1, 106 Operand *SelectCclz(IntrinsicopNode &intrinsicopNode) override; 109 Operand *SelectDrea [all...] |
H A D | aarch64_mop_valid.h | 24 inline bool StrLdr8Valid(Operand *o) in StrLdr8Valid() 32 inline bool StrLdr16Valid(Operand *o) in StrLdr16Valid() 48 inline bool StrLdr32Valid(Operand *o) in StrLdr32Valid() 64 inline bool StrLdr32PairValid(Operand *o) in StrLdr32PairValid() 75 inline bool StrLdr64Valid(Operand *o) in StrLdr64Valid() 91 inline bool StrLdr64PairValid(Operand *o) in StrLdr64PairValid() 102 inline bool StrLdr128Valid(Operand *o) in StrLdr128Valid() 118 inline bool StrLdr128PairValid(Operand *o) in StrLdr128PairValid() 128 inline bool IsOfstZero(Operand *o) in IsOfstZero() 137 inline bool MOP_wmovri32Valid(const MapleVector<Operand *> [all...] |
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/src/cg/ |
H A D | cfi.cpp | 21 using maplebe::Operand; 27 std::array<Operand::OperandType, 3> opndTypes; 31 #define CFI_DEFINE(k, sub, n, o0, o1, o2) {".cfi_" #k, n, {Operand::kOpd##o0, Operand::kOpd##o1, Operand::kOpd##o2}}, 33 {"." #k, n, {Operand::kOpd##o0, Operand::kOpd##o1, Operand::kOpd##o2}}, 37 {".cfi_undef", 0, {Operand::kOpdUndef, Operand [all...] |
H A D | isel.cpp | 26 MOperator fastIselMapI##SIZE[Operand::OperandType::kOpdPhi][Operand::OperandType::kOpdPhi] = { \ 33 MOperator fastIselMapF##SIZE[Operand::OperandType::kOpdPhi][Operand::OperandType::kOpdPhi] = { \ 68 MOperator GetFastIselMop(Operand::OperandType dTy, Operand::OperandType sTy, PrimType type) in GetFastIselMop() 146 Operand *opndRhs = iSel.HandleExpr(dassignNode, *rhs); in HandleDassign() 159 Operand *opndRhs = iSel.HandleExpr(stmt, *rhs); in HandleIassign() 162 Operand *opndAddr = iSel.HandleExpr(stmt, *addr); in HandleIassign() 175 Operand *opnd in HandleRegassign() [all...] |
H A D | cg_irbuilder.cpp | 31 Insn &InsnBuilder::BuildInsn(MOperator opCode, Operand &o0) in BuildInsn() 36 Insn &InsnBuilder::BuildInsn(MOperator opCode, Operand &o0, Operand &o1) in BuildInsn() 41 Insn &InsnBuilder::BuildInsn(MOperator opCode, Operand &o0, Operand &o1, Operand &o2) in BuildInsn() 47 Insn &InsnBuilder::BuildInsn(MOperator opCode, Operand &o0, Operand &o1, Operand &o2, Operand [all...] |
/arkcompiler/ets_runtime/ecmascript/compiler/trampoline/x64/ |
H A D | optimized_call.cpp | 64 __ Movq(Operand(rbx, 0), rdx); in JSFunctionEntry() 65 __ Movq(Operand(rbx, FRAME_SLOT_SIZE), rcx); in JSFunctionEntry() 66 __ Movq(Operand(rbx, DOUBLE_SLOT_SIZE), r8); in JSFunctionEntry() 83 __ Movq(prevFpReg, Operand(glueReg, JSThread::GlueData::GetLeaveFrameOffset(false))); in JSFunctionEntry() 128 __ Movq(Operand(rsp, funcSlotOffset * FRAME_SLOT_SIZE), jsFuncReg); // sp + 24 get jsFunc in OptimizedCallAndPushArgv() 129 __ Mov(Operand(jsFuncReg, JSFunctionBase::METHOD_OFFSET), method); // get method in OptimizedCallAndPushArgv() 130 __ Mov(Operand(jsFuncReg, JSFunctionBase::CODE_ENTRY_OFFSET), codeAddrReg); in OptimizedCallAndPushArgv() 133 __ Mov(Operand(method, Method::CALL_FIELD_OFFSET), methodCallField); // get call field in OptimizedCallAndPushArgv() 138 __ Movl(Operand(rsp, FRAME_SLOT_SIZE), rdx); // argc rdx in OptimizedCallAndPushArgv() 149 __ Leaq(Operand(rs in OptimizedCallAndPushArgv() [all...] |
H A D | asm_interpreter_call.cpp | 95 __ Movq(Operand(rsi, GeneratorContext::GENERATOR_METHOD_OFFSET), callTargetRegister); in GeneratorReEnterAsmInterpDispatch() 96 __ Movq(Operand(callTargetRegister, JSFunctionBase::METHOD_OFFSET), methodRegister); in GeneratorReEnterAsmInterpDispatch() 106 __ Movl(Operand(rsi, GeneratorContext::GENERATOR_NREGS_OFFSET), nRegsRegister); in GeneratorReEnterAsmInterpDispatch() 107 __ Movq(Operand(rsi, GeneratorContext::GENERATOR_THIS_OFFSET), thisRegister); in GeneratorReEnterAsmInterpDispatch() 108 __ Movq(Operand(rsi, GeneratorContext::GENERATOR_REGS_ARRAY_OFFSET), regsArrayRegister); in GeneratorReEnterAsmInterpDispatch() 148 __ Movq(Operand(callTargetRegister, TaggedObject::HCLASS_OFFSET), tempRegister); // hclass in AsmInterpEntryDispatch() 149 __ Movq(Operand(tempRegister, JSHClass::BIT_FIELD_OFFSET), bitFieldRegister); in AsmInterpEntryDispatch() 168 __ Leaq(Operand(argvRegister, NUM_MANDATORY_JSFUNC_ARGS * JSTaggedValue::TaggedTypeSize()), in AsmInterpEntryDispatch() 182 __ Movq(Operand(rax, trampolineIdRegister, Times8, JSThread::GlueData::GetRTStubEntriesOffset(false)), in AsmInterpEntryDispatch() 196 __ Movq(Operand(methodRegiste in PushFrameState() [all...] |
H A D | optimized_fast_call.cpp | 51 __ Movq(Operand(r8, 0), rsi); // func
in OptimizedFastCallEntry() 52 __ Movq(Operand(r8, FRAME_SLOT_SIZE), rdx); // thisobj
in OptimizedFastCallEntry() 61 __ Movq(prevFpReg, Operand(glueReg, JSThread::GlueData::GetLeaveFrameOffset(false)));
in OptimizedFastCallEntry() 116 __ Leaq(Operand(rsp, 8 * FRAME_SLOT_SIZE), argvReg); // 8: skip 8 frames to get argv
in OptimizedFastCallAndPushArgv() 117 __ Mov(Operand(jsFuncReg, JSFunctionBase::METHOD_OFFSET), method); // get method
in OptimizedFastCallAndPushArgv() 118 __ Mov(Operand(jsFuncReg, JSFunctionBase::CODE_ENTRY_OFFSET), codeAddrReg); // get codeAddress
in OptimizedFastCallAndPushArgv() 119 __ Mov(Operand(method, Method::CALL_FIELD_OFFSET), methodCallField); // get call field
in OptimizedFastCallAndPushArgv() 137 __ Movq(Operand(argvReg, 0), rcx);
in OptimizedFastCallAndPushArgv() 149 __ Movq(Operand(argvReg, 0), r8);
in OptimizedFastCallAndPushArgv() 160 __ Movq(Operand(argvRe in OptimizedFastCallAndPushArgv() [all...] |
H A D | common_call.cpp | 37 __ Movq(Operand(argV, argc, Scale::Times8, -FRAME_SLOT_SIZE), arg); // -8: stack index in CopyArgumentWithArgV() 49 __ Leaq(Operand(rsp, 24), rbp); // 24: skip pc, prevSp and frame type in PushAsmInterpBridgeFrame() 60 __ Movq(Operand(rbp, FRAME_SLOT_SIZE), r13); in GetArgvAtStack() 61 __ Movq(Operand(rbp, 2 * FRAME_SLOT_SIZE), r14); // 2: skip second argv in GetArgvAtStack() 98 __ Movq(Operand(argv, opArgc, Times8, -8), op); // 8: 8 bytes argv crash rdx=0x8 in PushArgsWithArgvAndCheckStack() 114 __ Movq(Operand(glue, JSThread::GlueData::GetStackLimitOffset(false)), temp1); in StackOverflowCheck() 130 __ Leaq(Operand(rsp, FRAME_SLOT_SIZE), rbp); in PushAsmBridgeFrame()
|
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/src/cg/aarch64/ |
H A D | aarch64_cgfunc.cpp | 169 void AArch64CGFunc::SelectCopyImm(Operand &dest, PrimType dType, ImmOperand &src, PrimType sType) in SelectCopyImm() 180 void AArch64CGFunc::SelectCopyImm(Operand &dest, ImmOperand &src, PrimType dtype) in SelectCopyImm() 300 void AArch64CGFunc::SelectCopyMemOpnd(Operand &dest, PrimType dtype, uint32 dsize, Operand &src, PrimType stype) in SelectCopyMemOpnd() 376 void AArch64CGFunc::SelectCopyRegOpnd(Operand &dest, PrimType dtype, Operand::OperandType opndType, uint32 dsize, in SelectCopyRegOpnd() 377 Operand &src, PrimType stype) in SelectCopyRegOpnd() 379 if (opndType != Operand::kOpdMem) { in SelectCopyRegOpnd() 440 void AArch64CGFunc::SelectCopy(Operand &dest, PrimType dtype, Operand [all...] |
H A D | aarch64_emitter.cpp | 129 Operand &opnd = insn->GetOperand(i); in RecordRegInfo() 633 Operand *opnd0 = &insn.GetOperand(kInsnFirstOpnd); in EmitClinitTail() 660 Operand *opnd0 = &insn.GetOperand(kInsnFirstOpnd); in EmitLazyLoad() 661 Operand *opnd1 = &insn.GetOperand(kInsnSecondOpnd); in EmitLazyLoad() 698 Operand *opnd0 = &insn.GetOperand(kInsnFirstOpnd); in EmitCounter() 699 Operand *opnd1 = &insn.GetOperand(kInsnSecondOpnd); in EmitCounter() 743 Operand *opnd0 = &insn.GetOperand(kInsnFirstOpnd); in EmitAdrpLabel() 744 Operand *opnd1 = &insn.GetOperand(kInsnSecondOpnd); in EmitAdrpLabel() 777 Operand *opnd0 = &insn.GetOperand(kInsnFirstOpnd); in EmitAdrpLdr() 778 Operand *opnd in EmitAdrpLdr() [all...] |
/arkcompiler/ets_runtime/ecmascript/compiler/assembler/x64/ |
H A D | macro_assembler_x64.cpp | 25 x64::Operand dstOpnd(baseReg, dstStackSlot.GetOffset()); in Move() 35 x64::Operand srcOpnd(srcBaseReg, srcStackSlot.GetOffset()); in Move() 36 x64::Operand dstOpnd(dstBaseReg, dstStackSlot.GetOffset()); in Move() 44 x64::Operand opnd(baseReg, stackSlot.GetOffset()); in Cmp() 72 x64::Operand dstOpnd(dstBaseReg, dstStackSlot.GetOffset()); in SaveReturnRegister() 86 assembler.Movq(x64::Operand(x64::rbp, FUNCTION_OFFSET_FROM_SP), LOCAL_SCOPE_REGISTER); in MovParameterIntoParamReg() 88 x64::Operand(LOCAL_SCOPE_REGISTER, JSFunction::RAW_PROFILE_TYPE_INFO_OFFSET), in MovParameterIntoParamReg() 90 assembler.Movq(x64::Operand(LOCAL_SCOPE_REGISTER, ProfileTypeInfoCell::VALUE_OFFSET), paramReg); in MovParameterIntoParamReg() 98 assembler.Movq(x64::Operand(x64::rbp, FUNCTION_OFFSET_FROM_SP), LOCAL_SCOPE_REGISTER); in MovParameterIntoParamReg() 100 x64::Operand(LOCAL_SCOPE_REGISTE in MovParameterIntoParamReg() [all...] |
H A D | assembler_x64.h | 61 class Operand { class 63 Operand(Register base, int32_t disp); 64 Operand(Register base, Register index, Scale scale, int32_t disp); 65 Operand(Register index, Scale scale, int32_t disp); 66 ~Operand() = default; 95 void Movq(const Operand &src, Register dst); 96 void Movq(Register src, const Operand &dst); 97 void Movq(Immediate src, Operand dst); 99 void Mov(const Operand &src, Register dst); 142 void Leaq(const Operand [all...] |
/arkcompiler/ets_runtime/ecmascript/compiler/assembler/aarch64/ |
H A D | assembler_aarch64.h | 157 class Operand { class 159 Operand(Immediate imm) in Operand() function in panda::ecmascript::aarch64::Operand 164 Operand(Register reg, Shift shift = Shift::LSL, uint8_t shift_amount = 0) in Operand() function in panda::ecmascript::aarch64::Operand 168 Operand(Register reg, Extend extend, uint8_t shiftAmount = 0) in Operand() function in panda::ecmascript::aarch64::Operand 172 ~Operand() = default; 316 void Orr(const Register &rd, const Register &rn, const Operand &operand); 317 void And(const Register &rd, const Register &rn, const Operand &operand); 318 void Ands(const Register &rd, const Register &rn, const Operand &operand); 327 void Add(const Register &rd, const Register &rn, const Operand &operand); 328 void Adds(const Register &rd, const Register &rn, const Operand [all...] |