| /arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/include/cg/ |
| D | operand.def | 16 DEFINE_MOP(Mem8S, {Operand::kOpdMem, operand::kIsUse, 8}) 17 DEFINE_MOP(Mem8D, {Operand::kOpdMem, operand::kIsDef, 8}) 18 DEFINE_MOP(Mem16S, {Operand::kOpdMem, operand::kIsUse, 16}) 19 DEFINE_MOP(Mem16D, {Operand::kOpdMem, operand::kIsDef, 16}) 20 DEFINE_MOP(Mem32D, {Operand::kOpdMem, operand::kIsDef, 32}) 21 DEFINE_MOP(Mem32S, {Operand::kOpdMem, operand::kIsUse, 32}) 22 DEFINE_MOP(Mem64D, {Operand::kOpdMem, operand::kIsDef, 64}) 23 DEFINE_MOP(Mem64S, {Operand::kOpdMem, operand::kIsUse, 64}) 24 DEFINE_MOP(Mem128D, {Operand::kOpdMem, operand::kIsDef, 128}) 25 DEFINE_MOP(Mem128S, {Operand::kOpdMem, operand::kIsUse, 128}) [all …]
|
| D | isel.h | 45 Operand *HandleExpr(const BaseNode &parent, BaseNode &expr); 47 void SelectDassign(const DassignNode &stmt, Operand &opndRhs); 48 void SelectDassignoff(DassignoffNode &stmt, Operand &opnd0); 49 void SelectIassign(const IassignNode &stmt, Operand &opndAddr, Operand &opndRhs); 52 void SelectRegassign(RegassignNode &stmt, Operand &opnd0); 53 Operand *SelectDread(const BaseNode &parent, const AddrofNode &expr); 54 …Operand *SelectBand(const BinaryNode &node, Operand &opnd0, Operand &opnd1, const BaseNode &parent… 55 …Operand *SelectAdd(const BinaryNode &node, Operand &opnd0, Operand &opnd1, const BaseNode &parent); 56 …Operand *SelectSub(const BinaryNode &node, Operand &opnd0, Operand &opnd1, const BaseNode &parent); 57 Operand *SelectNeg(const UnaryNode &node, Operand &opnd0, const BaseNode &parent); [all …]
|
| D | cgfunc.h | 20 #include "operand.h" 202 Operand *HandleExpr(const BaseNode &parent, BaseNode &expr); 208 virtual void SelectDassign(DassignNode &stmt, Operand &opnd0) = 0; 209 virtual void SelectDassignoff(DassignoffNode &stmt, Operand &opnd0) = 0; 210 virtual void SelectRegassign(RegassignNode &stmt, Operand &opnd0) = 0; 217 virtual void SelectIassignfpoff(IassignFPoffNode &stmt, Operand &opnd) = 0; 218 virtual void SelectIassignspoff(PrimType pTy, int32 offset, Operand &opnd) = 0; 219 virtual void SelectBlkassignoff(BlkassignoffNode &bNode, Operand *src) = 0; 220 virtual void SelectAggIassign(IassignNode &stmt, Operand &lhsAddrOpnd) = 0; 222 virtual void SelectReturn(Operand *opnd) = 0; [all …]
|
| D | ebo.h | 42 explicit OpndInfo(Operand &opnd) : opnd(&opnd) {} in OpndInfo() 46 …int32 hashVal = 0; /* Mem operand is placed in hash table, this is the hashVal of it, and otherwis… 47 Operand *opnd; /* Operand */ 48 Operand *replacementOpnd = nullptr; /* Rename opnd with this new name. */ 59 OpndInfo *same = nullptr; /* Other definitions of the same operand. */ 63 int32 refCount = 0; /* Number of references to the operand. */ 67 explicit MemOpndInfo(Operand &opnd) : OpndInfo(opnd) {} in MemOpndInfo() 158 bool IsSaveReg(const Operand &opnd); 159 bool IsFrameReg(Operand &opnd) const; 160 bool OperandEqual(const Operand &op1, const Operand &op2) const; [all …]
|
| D | cg_irbuilder.h | 20 #include "operand.h" 37 Insn &BuildInsn(MOperator opCode, Operand &o0); 38 Insn &BuildInsn(MOperator opCode, Operand &o0, Operand &o1); 39 Insn &BuildInsn(MOperator opCode, Operand &o0, Operand &o1, Operand &o2); 40 Insn &BuildInsn(MOperator opCode, Operand &o0, Operand &o1, Operand &o2, Operand &o3); 41 …Insn &BuildInsn(MOperator opCode, Operand &o0, Operand &o1, Operand &o2, Operand &o3, Operand &o4); 42 Insn &BuildInsn(MOperator opCode, std::vector<Operand *> &opnds); 69 /* create an operand in cgfunc when no mempool is supplied */
|
| D | reg_alloc_basic.h | 20 #include "operand.h" 32 allocatedSet(std::less<Operand *>(), alloc.Adapter()), in DefaultO0RegAllocator() 53 void AllocHandleDestList(Insn &insn, Operand &opnd, uint32 idx); 54 void AllocHandleDest(Insn &insn, Operand &opnd, uint32 idx); 55 void AllocHandleSrcList(Insn &insn, Operand &opnd, uint32 idx); 56 void AllocHandleSrc(Insn &insn, Operand &opnd, uint32 idx); 61 Operand *HandleRegOpnd(Operand &opnd); 62 Operand *HandleMemOpnd(Operand &opnd); 63 Operand *AllocSrcOpnd(Operand &opnd); 64 Operand *AllocDestOpnd(Operand &opnd, const Insn &insn); [all …]
|
| D | operand.h | 55 class Operand { 62 kOpdPhi, /* for phi operand */ 65 kOpdOffset, /* for the offset operand in MemOperand */ 67 kOpdList, /* for list operand */ 68 kOpdShift, /* for imm shift operand */ 69 kOpdRegShift, /* for reg shift operand */ 70 kOpdExtend, /* for extend operand */ 75 Operand(OperandType type, uint32 size) : opndKind(type), size(size) {} in Operand() function 76 virtual ~Operand() = default; 193 virtual Operand *Clone(MemPool &memPool) const = 0; [all …]
|
| D | cfi.h | 22 #include "operand.h" 64 …CfiInsn(MemPool &memPool, maplebe::MOperator op, maplebe::Operand &opnd0) : Insn(memPool, op, opnd… in CfiInsn() 66 … CfiInsn(MemPool &memPool, maplebe::MOperator op, maplebe::Operand &opnd0, maplebe::Operand &opnd1) in CfiInsn() 71 … CfiInsn(MemPool &memPool, maplebe::MOperator op, maplebe::Operand &opnd0, maplebe::Operand &opnd1, in CfiInsn() 72 maplebe::Operand &opnd2) in CfiInsn() 132 Operand *Clone(MemPool &memPool) const override in Clone() 134 Operand *opnd = memPool.Clone<RegOperand>(*this); in Clone() 140 bool Less(const Operand &right) const override in Less() 157 Operand *Clone(MemPool &memPool) const override in Clone() 159 Operand *opnd = memPool.Clone<ImmOperand>(*this); in Clone() [all …]
|
| /arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/include/cg/x86_64/ |
| D | x64_cgfunc.h | 53 void SelectDassign(DassignNode &stmt, Operand &opnd0) override; 54 void SelectDassignoff(DassignoffNode &stmt, Operand &opnd0) override; 55 void SelectRegassign(RegassignNode &stmt, Operand &opnd0) override; 62 void SelectIassignfpoff(IassignFPoffNode &stmt, Operand &opnd) override; 63 void SelectIassignspoff(PrimType pTy, int32 offset, Operand &opnd) override; 64 void SelectBlkassignoff(BlkassignoffNode &bNode, Operand *src) override; 65 void SelectAggIassign(IassignNode &stmt, Operand &lhsAddrOpnd) override; 67 void SelectReturn(Operand *opnd) override; 68 void SelectIgoto(Operand *opnd0) override; 69 void SelectCondGoto(CondGotoNode &stmt, Operand &opnd0, Operand &opnd1) override; [all …]
|
| D | x64_MPISel.h | 27 void SelectReturn(NaryStmtNode &retNode, Operand &opnd) override; 30 void SelectIcall(IcallNode &icallNode, Operand &opnd0) override; 31 Operand &ProcessReturnReg(PrimType primType, int32 sReg) override; 32 Operand &GetTargetRetOperand(PrimType primType, int32 sReg) override; 33 Operand *SelectAddrof(AddrofNode &expr, const BaseNode &parent) override; 34 Operand *SelectAddrofFunc(AddroffuncNode &expr, const BaseNode &parent) override; 35 Operand *SelectAddrofLabel(AddroflabelNode &expr, const BaseNode &parent) override; 36 Operand *SelectFloatingConst(MIRConst &floatingConst, PrimType primType) const override; 39 void SelectAggIassign(IassignNode &stmt, Operand &AddrOpnd, Operand &opndRhs) override; 40 …void SelectAggDassign(maplebe::MirTypeInfo &lhsInfo, MemOperand &symbolMem, Operand &opndRhs) over… [all …]
|
| /arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/include/cg/aarch64/ |
| D | aarch64_cgfunc.h | 122 void SelectDassign(DassignNode &stmt, Operand &opnd0) override; 123 void SelectDassignoff(DassignoffNode &stmt, Operand &opnd0) override; 124 void SelectRegassign(RegassignNode &stmt, Operand &opnd0) override; 134 bool LmbcSmallAggForRet(const BlkassignoffNode &bNode, const Operand *src); 135 …bool LmbcSmallAggForCall(BlkassignoffNode &bNode, const Operand *src, std::vector<TyIdx> **parmLis… 139 void SelectIassignfpoff(IassignFPoffNode &stmt, Operand &opnd) override; 140 void SelectIassignspoff(PrimType pTy, int32 offset, Operand &opnd) override; 141 void SelectBlkassignoff(BlkassignoffNode &bNode, Operand *src) override; 142 void SelectAggIassign(IassignNode &stmt, Operand &lhsAddrOpnd) override; 144 void SelectReturn(Operand *opnd0) override; [all …]
|
| D | aarch64_ico.h | 43 bool IsSetInsn(const Insn &insn, Operand *&dest, std::vector<Operand *> &src) const; 56 …bool BuildCondMovInsn(BB &cmpBB, const BB &bb, const std::map<Operand *, std::vector<Operand *>> &… 57 … const std::map<Operand *, std::vector<Operand *>> &elseDestSrcMap, bool elseBBIsProcessed, 60 …void GenerateInsnForImm(const Insn &branchInsn, Operand &ifDest, Operand &elseDest, RegOperand &de… 62 …Operand *GetDestReg(const std::map<Operand *, std::vector<Operand *>> &destSrcMap, const RegOperan… 63 …void GenerateInsnForReg(const Insn &branchInsn, Operand &ifDest, Operand &elseDest, RegOperand &de… 65 RegOperand *GenerateRegAndTempInsn(Operand &dest, const RegOperand &destReg, 68 bool CheckModifiedRegister(Insn &insn, std::map<Operand *, std::vector<Operand *>> &destSrcMap, 69 std::vector<Operand *> &src, Operand &dest, const Insn *cmpInsn, 70 const Operand *flagOpnd) const; [all …]
|
| D | aarch64_ebo.h | 41 OpndInfo *OperandInfoDef(BB ¤tBB, Insn ¤tInsn, Operand &localOpnd) override; 42 const RegOperand &GetRegOperand(const Operand &opnd) const override; 45 bool OperandEqSpecial(const Operand &op1, const Operand &op2) const override; 46 bool DoConstProp(Insn &insn, uint32 i, Operand &opnd) override; 47 bool Csel2Cset(Insn &insn, const MapleVector<Operand *> &opnds) override; 48 bool SimplifyConstOperand(Insn &insn, const MapleVector<Operand *> &opnds, 60 bool ChangeLdrMop(Insn &insn, const Operand &opnd) const override; 67 bool LiveOutOfBB(const Operand &opnd, const BB &bb) const override; 69 bool IsZeroRegister(const Operand &opnd) const override; 70 bool IsConstantImmOrReg(const Operand &opnd) const override; [all …]
|
| /arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/src/cg/x86_64/ |
| D | x64_cgfunc.cpp | 20 #include "assembler/operand.h" 70 void X64CGFunc::SelectDassign(DassignNode &stmt, Operand &opnd0) in SelectDassign() 74 void X64CGFunc::SelectDassignoff(DassignoffNode &stmt, Operand &opnd0) in SelectDassignoff() 78 void X64CGFunc::SelectRegassign(RegassignNode &stmt, Operand &opnd0) in SelectRegassign() 106 void X64CGFunc::SelectIassignfpoff(IassignFPoffNode &stmt, Operand &opnd) in SelectIassignfpoff() 110 void X64CGFunc::SelectIassignspoff(PrimType pTy, int32 offset, Operand &opnd) in SelectIassignspoff() 114 void X64CGFunc::SelectBlkassignoff(BlkassignoffNode &bNode, Operand *src) in SelectBlkassignoff() 118 void X64CGFunc::SelectAggIassign(IassignNode &stmt, Operand &lhsAddrOpnd) in SelectAggIassign() 126 void X64CGFunc::SelectReturn(Operand *opnd) in SelectReturn() 130 void X64CGFunc::SelectIgoto(Operand *opnd0) in SelectIgoto() [all …]
|
| /arkcompiler/ets_runtime/ecmascript/compiler/assembler/aarch64/ |
| D | assembler_aarch64.h | 157 class Operand { 159 Operand(Immediate imm) in Operand() function 164 Operand(Register reg, Shift shift = Shift::LSL, uint8_t shift_amount = 0) 168 Operand(Register reg, Extend extend, uint8_t shiftAmount = 0) 172 ~Operand() = default; 300 void Ldp(const Register &rt, const Register &rt2, const MemoryOperand &operand); 301 void Stp(const Register &rt, const Register &rt2, const MemoryOperand &operand); 302 void Ldp(const VectorRegister &vt, const VectorRegister &vt2, const MemoryOperand &operand); 303 void Stp(const VectorRegister &vt, const VectorRegister &vt2, const MemoryOperand &operand); 304 void Ldr(const Register &rt, const MemoryOperand &operand); [all …]
|
| D | assembler_aarch64.cpp | 89 void AssemblerAarch64::Ldp(const Register &rt, const Register &rt2, const MemoryOperand &operand) in Ldp() argument 92 if (operand.IsImmediateOffset()) { in Ldp() 93 switch (operand.GetAddrMode()) { in Ldp() 108 uint64_t imm = static_cast<uint64_t>(operand.GetImmediate().Value()); in Ldp() 115 Rn(operand.GetRegBase().GetId()) | Rt(rt.GetId()); in Ldp() 123 void AssemblerAarch64::Stp(const Register &rt, const Register &rt2, const MemoryOperand &operand) in Stp() argument 126 if (operand.IsImmediateOffset()) { in Stp() 127 switch (operand.GetAddrMode()) { in Stp() 142 uint64_t imm = static_cast<uint64_t>(operand.GetImmediate().Value()); in Stp() 149 Rn(operand.GetRegBase().GetId()) | Rt(rt.GetId()); in Stp() [all …]
|
| /arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/src/cg/ |
| D | dbg.cpp | 23 using maplebe::Operand; 29 /* create 3 OperandType array to store dbg instruction's operand type */ 30 std::array<Operand::OperandType, 3> opndTypes; 34 #define DBG_DEFINE(k, sub, n, o0, o1, o2) {#k, n, {Operand::kOpd##o0, Operand::kOpd##o1, Operand::k… 37 {"undef", 0, {Operand::kOpdUndef, Operand::kOpdUndef, Operand::kOpdUndef}}}; 46 Operand &curOperand = GetOperand(i); in Dump() 56 /* dbg instruction's 3rd /4th/5th operand must be null */ in Check() 58 Operand &opnd = GetOperand(i); in Check() 60 CHECK_FATAL(false, "incorrect operand in debug insn"); in Check()
|
| D | cfi.cpp | 23 using maplebe::Operand; 29 /* create 3 OperandType array to store cfi instruction's operand type */ 30 std::array<Operand::OperandType, 3> opndTypes; 34 …ne CFI_DEFINE(k, sub, n, o0, o1, o2) {".cfi_" #k, n, {Operand::kOpd##o0, Operand::kOpd##o1, Operan… 36 {"." #k, n, {Operand::kOpd##o0, Operand::kOpd##o1, Operand::kOpd##o2}}, 40 {".cfi_undef", 0, {Operand::kOpdUndef, Operand::kOpdUndef, Operand::kOpdUndef}}}; 49 Operand &curOperand = GetOperand(i); in Dump() 59 /* cfi instruction's 3rd /4th/5th operand must be null */ in Check() 61 Operand &opnd = GetOperand(i); in Check() 63 CHECK_FATAL(false, "incorrect operand in cfi insn"); in Check()
|
| 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() 148 Operand *opndRhs = iSel.HandleExpr(dassignNode, *rhs); in HandleDassign() 160 Operand *opnd0 = iSel.HandleExpr(dassignoffNode, *rhs); in HandleDassignoff() 170 Operand *opndRhs = iSel.HandleExpr(stmt, *rhs); in HandleIassign() 173 Operand *opndAddr = iSel.HandleExpr(stmt, *addr); in HandleIassign() 188 BaseNode *operand = regAssignNode.Opnd(0); in HandleRegassign() local 189 DEBUG_ASSERT(operand != nullptr, "get operand of regassignNode failed"); in HandleRegassign() 190 Operand *opnd0 = iSel.HandleExpr(regAssignNode, *operand); in HandleRegassign() [all …]
|
| 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 &o3) in BuildInsn() 53 Insn &InsnBuilder::BuildInsn(MOperator opCode, Operand &o0, Operand &o1, Operand &o2, Operand &o3, … in BuildInsn() 60 Insn &InsnBuilder::BuildInsn(MOperator opCode, std::vector<Operand *> &opnds) in BuildInsn()
|
| D | cgfunc.cpp | 33 Operand *HandleDread(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleDread() 39 Operand *HandleRegread(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleRegread() 49 Operand *HandleConstVal(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleConstVal() 69 Operand *HandleConstStr(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleConstStr() 87 Operand *HandleConstStr16(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleConstStr16() 105 Operand *HandleAdd(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleAdd() 125 Operand *HandleCGArrayElemAdd(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleCGArrayElemAdd() 164 Operand *HandleShift(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleShift() 176 Operand *HandleRor(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleRor() 182 Operand *HandleMpy(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleMpy() [all …]
|
| /arkcompiler/runtime_core/static_core/plugins/ets/tests/ets-templates/07.expressions/29.conditional_expressions/02.numeric_conditional_expressions/ |
| D | numeric_condition_expression_type.ets | 16 {% for operand in operands %} 23 let x{{operand.type}} = {{operand.first}} ? {{operand.second}} : {{operand.third}}; 24 assert {{operand.check}};
|
| /arkcompiler/ets_runtime/ecmascript/compiler/trampoline/x64/ |
| D | optimized_call.cpp | 65 __ Movq(Operand(rbx, 0), rdx); in JSFunctionEntry() 66 __ Movq(Operand(rbx, FRAME_SLOT_SIZE), rcx); in JSFunctionEntry() 67 __ Movq(Operand(rbx, DOUBLE_SLOT_SIZE), r8); in JSFunctionEntry() 84 __ Movq(prevFpReg, Operand(glueReg, JSThread::GlueData::GetLeaveFrameOffset(false))); in JSFunctionEntry() 124 __ Movq(Operand(rsp, DOUBLE_SLOT_SIZE), jsFuncReg); // sp + 16 get jsFunc in OptimizedCallAndPushUndefined() 125 __ Mov(Operand(jsFuncReg, JSFunctionBase::METHOD_OFFSET), method); // get method in OptimizedCallAndPushUndefined() 126 __ Mov(Operand(method, Method::CODE_ENTRY_OFFSET), codeAddrReg); in OptimizedCallAndPushUndefined() 129 __ Mov(Operand(method, Method::CALL_FIELD_OFFSET), methodCallField); // get call field in OptimizedCallAndPushUndefined() 134 __ Movl(Operand(rsp, FRAME_SLOT_SIZE), rdx); // argc rdx in OptimizedCallAndPushUndefined() 148 __ Leaq(Operand(rsp, FRAME_SLOT_SIZE), rbp); in OptimizedCallAndPushUndefined() [all …]
|
| /arkcompiler/ets_runtime/ecmascript/compiler/assembler/x64/ |
| D | assembler_x64.h | 61 class Operand { 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 &src, Register dst); [all …]
|
| /arkcompiler/runtime_core/static_core/plugins/ets/doc/spec/ |
| D | 7_expressions.rst | 336 - If the right-hand operand expression has the zero value, then integer 424 - Any right-hand operand is evaluated only after the full evaluation of the 425 left-hand operand of a binary operator. 428 the evaluation of the left-hand operand includes the following: 431 - Remembering the variable denoted by the left-hand operand, 433 of the right-hand operand, and 436 If the evaluation of the left-hand operand completes abruptly, then no 437 part of the right-hand operand is evaluated. 440 of every operand of an operator (except conditional operators '&&', '||', 458 operand [all …]
|