| /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" 281 Operand *HandleExpr(const BaseNode &parent, BaseNode &expr); 286 virtual void SelectDassign(DassignNode &stmt, Operand &opnd0) = 0; 287 virtual void SelectDassignoff(DassignoffNode &stmt, Operand &opnd0) = 0; 288 virtual void SelectRegassign(RegassignNode &stmt, Operand &opnd0) = 0; 295 virtual void SelectIassignfpoff(IassignFPoffNode &stmt, Operand &opnd) = 0; 296 virtual void SelectIassignspoff(PrimType pTy, int32 offset, Operand &opnd) = 0; 297 virtual void SelectBlkassignoff(BlkassignoffNode &bNode, Operand *src) = 0; 298 virtual void SelectAggIassign(IassignNode &stmt, Operand &lhsAddrOpnd) = 0; 300 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() 156 bool IsSaveReg(const Operand &opnd); 157 bool IsFrameReg(Operand &opnd) const; 158 bool OperandEqual(const Operand &op1, const Operand &op2) const; [all …]
|
| D | reg_alloc_basic.h | 20 #include "operand.h" 32 allocatedSet(std::less<Operand *>(), alloc.Adapter()), in DefaultO0RegAllocator() 52 void AllocHandleDestList(Insn &insn, Operand &opnd, uint32 idx); 53 void AllocHandleDest(Insn &insn, Operand &opnd, uint32 idx); 54 void AllocHandleSrcList(Insn &insn, Operand &opnd, uint32 idx); 55 void AllocHandleSrc(Insn &insn, Operand &opnd, uint32 idx); 59 Operand *HandleRegOpnd(Operand &opnd); 60 Operand *HandleMemOpnd(Operand &opnd); 61 Operand *AllocSrcOpnd(Operand &opnd); 62 Operand *AllocDestOpnd(Operand &opnd, const Insn &insn); [all …]
|
| D | cg_irbuilder.h | 21 #include "operand.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 &o3); 42 …Insn &BuildInsn(MOperator opCode, Operand &o0, Operand &o1, Operand &o2, Operand &o3, Operand &o4); 43 Insn &BuildInsn(MOperator opCode, std::vector<Operand *> &opnds); 84 /* create an operand in cgfunc when no mempool is supplied */
|
| D | cfi.h | 22 #include "operand.h" 66 …CfiInsn(MemPool &memPool, maplebe::MOperator op, maplebe::Operand &opnd0) : Insn(memPool, op, opnd… 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() 145 Operand *Clone(MemPool &memPool) const override in Clone() 147 Operand *opnd = memPool.Clone<RegOperand>(*this); in Clone() 153 bool Less(const Operand &right) const override in Less() 176 Operand *Clone(MemPool &memPool) const override in Clone() 178 Operand *opnd = memPool.Clone<ImmOperand>(*this); in Clone() [all …]
|
| D | operand.h | 54 class Operand { 61 kOpdPhi, /* for phi operand */ 64 kOpdOffset, /* for the offset operand in MemOperand */ 66 kOpdList, /* for list operand */ 67 kOpdShift, /* for imm shift operand */ 68 kOpdRegShift, /* for reg shift operand */ 69 kOpdExtend, /* for extend operand */ 74 Operand(OperandType type, uint32 size) : opndKind(type), size(size) {} in Operand() function 75 virtual ~Operand() = default; 193 virtual Operand *CloneTree(MapleAllocator &allocator) const = 0; [all …]
|
| /arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/include/cg/x86_64/ |
| D | x64_cgfunc.h | 52 void SelectDassign(DassignNode &stmt, Operand &opnd0) override; 53 void SelectDassignoff(DassignoffNode &stmt, Operand &opnd0) override; 54 void SelectRegassign(RegassignNode &stmt, Operand &opnd0) override; 61 void SelectIassignfpoff(IassignFPoffNode &stmt, Operand &opnd) override; 62 void SelectIassignspoff(PrimType pTy, int32 offset, Operand &opnd) override; 63 void SelectBlkassignoff(BlkassignoffNode &bNode, Operand *src) override; 64 void SelectAggIassign(IassignNode &stmt, Operand &lhsAddrOpnd) override; 66 void SelectReturn(Operand *opnd) override; 67 void SelectIgoto(Operand *opnd0) override; 68 void SelectCondGoto(CondGotoNode &stmt, Operand &opnd0, Operand &opnd1) override; [all …]
|
| 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 *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… 42 void SelectRangeGoto(RangeGotoNode &rangeGotoNode, Operand &srcOpnd) override; [all …]
|
| /arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/include/cg/aarch64/ |
| D | aarch64_cgfunc.h | 133 void SelectDassign(DassignNode &stmt, Operand &opnd0) override; 134 void SelectDassignoff(DassignoffNode &stmt, Operand &opnd0) override; 135 void SelectRegassign(RegassignNode &stmt, Operand &opnd0) override; 147 …bool LmbcSmallAggForRet(const BaseNode &bNode, const Operand *src, int32 offset = 0, bool skip1 = … 148 …bool LmbcSmallAggForCall(BlkassignoffNode &bNode, const Operand *src, std::vector<TyIdx> **parmLis… 152 void SelectIassignfpoff(IassignFPoffNode &stmt, Operand &opnd) override; 153 void SelectIassignspoff(PrimType pTy, int32 offset, Operand &opnd) override; 154 void SelectBlkassignoff(BlkassignoffNode &bNode, Operand *src) override; 155 void SelectAggIassign(IassignNode &stmt, Operand &lhsAddrOpnd) override; 157 void SelectReturn(Operand *opnd0) override; [all …]
|
| D | aarch64_mop_valid.h | 20 #include "operand.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() [all …]
|
| D | aarch64_ico.h | 43 bool IsSetInsn(const Insn &insn, Operand *&dest, std::vector<Operand *> &src) const; 59 …bool BuildCondMovInsn(BB &cmpBB, const BB &bb, const std::map<Operand *, std::vector<Operand *>> &… 60 … const std::map<Operand *, std::vector<Operand *>> &elseDestSrcMap, bool elseBBIsProcessed, 62 …void GenerateInsnForImm(const Insn &branchInsn, Operand &ifDest, Operand &elseDest, RegOperand &de… 64 …Operand *GetDestReg(const std::map<Operand *, std::vector<Operand *>> &destSrcMap, const RegOperan… 65 …void GenerateInsnForReg(const Insn &branchInsn, Operand &ifDest, Operand &elseDest, RegOperand &de… 67 RegOperand *GenerateRegAndTempInsn(Operand &dest, const RegOperand &destReg, 70 bool CheckCondMoveBB(BB *bb, std::map<Operand *, std::vector<Operand *>> &destSrcMap, 71 … std::vector<Operand *> &destRegs, std::vector<Insn *> &setInsn, Operand *flagReg,
|
| /arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/src/cg/x86_64/ |
| D | x64_cgfunc.cpp | 20 #include "assembler/operand.h" 66 void X64CGFunc::SelectDassign(DassignNode &stmt, Operand &opnd0) in SelectDassign() 70 void X64CGFunc::SelectDassignoff(DassignoffNode &stmt, Operand &opnd0) in SelectDassignoff() 74 void X64CGFunc::SelectRegassign(RegassignNode &stmt, Operand &opnd0) in SelectRegassign() 102 void X64CGFunc::SelectIassignfpoff(IassignFPoffNode &stmt, Operand &opnd) in SelectIassignfpoff() 106 void X64CGFunc::SelectIassignspoff(PrimType pTy, int32 offset, Operand &opnd) in SelectIassignspoff() 110 void X64CGFunc::SelectBlkassignoff(BlkassignoffNode &bNode, Operand *src) in SelectBlkassignoff() 114 void X64CGFunc::SelectAggIassign(IassignNode &stmt, Operand &lhsAddrOpnd) in SelectAggIassign() 122 void X64CGFunc::SelectReturn(Operand *opnd) in SelectReturn() 126 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 | 90 void AssemblerAarch64::Ldp(const Register &rt, const Register &rt2, const MemoryOperand &operand) in Ldp() argument 93 if (operand.IsImmediateOffset()) { in Ldp() 94 switch (operand.GetAddrMode()) { in Ldp() 109 uint64_t imm = static_cast<uint64_t>(operand.GetImmediate().Value()); in Ldp() 116 Rn(operand.GetRegBase().GetId()) | Rt(rt.GetId()); in Ldp() 124 void AssemblerAarch64::Stp(const Register &rt, const Register &rt2, const MemoryOperand &operand) in Stp() argument 127 if (operand.IsImmediateOffset()) { in Stp() 128 switch (operand.GetAddrMode()) { in Stp() 143 uint64_t imm = static_cast<uint64_t>(operand.GetImmediate().Value()); in Stp() 150 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() 55 /* dbg instruction's 3rd /4th/5th operand must be null */ in CheckMD() 57 Operand &opnd = GetOperand(i); in CheckMD()
|
| 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() 58 /* cfi instruction's 3rd /4th/5th operand must be null */ in CheckMD() 60 Operand &opnd = GetOperand(i); in CheckMD()
|
| 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() 158 Operand *opnd0 = iSel.HandleExpr(dassignoffNode, *rhs); in HandleDassignoff() 168 Operand *opndRhs = iSel.HandleExpr(stmt, *rhs); in HandleIassign() 171 Operand *opndAddr = iSel.HandleExpr(stmt, *addr); in HandleIassign() 186 BaseNode *operand = regAssignNode.Opnd(0); in HandleRegassign() local 187 DEBUG_ASSERT(operand != nullptr, "get operand of regassignNode failed"); in HandleRegassign() 188 Operand *opnd0 = iSel.HandleExpr(regAssignNode, *operand); in HandleRegassign() [all …]
|
| D | cgfunc.cpp | 98 Operand *HandleDread(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleDread() 104 Operand *HandleRegread(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleRegread() 111 Operand *HandleConstVal(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleConstVal() 131 Operand *HandleConstStr(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleConstStr() 149 Operand *HandleConstStr16(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleConstStr16() 167 Operand *HandleAdd(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleAdd() 187 Operand *HandleCGArrayElemAdd(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleCGArrayElemAdd() 226 Operand *HandleShift(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleShift() 238 Operand *HandleRor(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleRor() 244 Operand *HandleMpy(const BaseNode &parent, BaseNode &expr, CGFunc &cgFunc) in HandleMpy() [all …]
|
| /arkcompiler/runtime_core/static_core/plugins/ets/tests/ets-templates/07.expressions/30.conditional_expressions/ |
| D | numeric_condition_expression_type.sts | 16 {% for operand in operands %} 23 let x{{operand.type}} = {{operand.first}} ? {{operand.second}} : {{operand.third}}; 24 assert {{operand.check}};
|
| D | type_of_numeric_condition_expression_type.sts | 16 {% for operand in operands %} 24 let x = {{operand.first}} ? {{operand.second}} : {{operand.third}}; 25 assert {{operand.check}};
|
| /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/ets_runtime/ecmascript/compiler/trampoline/x64/ |
| 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(rsp, FRAME_SLOT_SIZE), rbp); in OptimizedCallAndPushArgv() [all …]
|
| /arkcompiler/runtime_core/static_core/plugins/ets/tests/ets-templates/07.expressions/29.assignment/01.simple_assignment_operator/ |
| D | ord24.sts | 18 …If the left-hand operand is an array access expression (§7.12), possibly enclosed in one or more p… 19 - First, the array reference subexpression of the left-hand operand is evaluated. 21 abruptly for the same reason; the index subexpression and the right-hand operand 23 - Otherwise, the index subexpression of the left-hand operand is evaluated. 25 abruptly for the same reason; the right-hand operand is not evaluated and no assignment occurs. 26 - Otherwise, the right-hand operand is evaluated. If this evaluation completes abruptly, 28 params: abrupt completion, right-hand operand
|