/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/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 …]
|
D | asm_interpreter_call.cpp | 93 __ Movq(Operand(rsi, GeneratorContext::GENERATOR_METHOD_OFFSET), callTargetRegister); in GeneratorReEnterAsmInterpDispatch() 94 __ Movq(Operand(callTargetRegister, JSFunctionBase::METHOD_OFFSET), methodRegister); in GeneratorReEnterAsmInterpDispatch() 104 __ Movl(Operand(rsi, GeneratorContext::GENERATOR_NREGS_OFFSET), nRegsRegister); in GeneratorReEnterAsmInterpDispatch() 105 __ Movq(Operand(rsi, GeneratorContext::GENERATOR_THIS_OFFSET), thisRegister); in GeneratorReEnterAsmInterpDispatch() 106 __ Movq(Operand(rsi, GeneratorContext::GENERATOR_REGS_ARRAY_OFFSET), regsArrayRegister); in GeneratorReEnterAsmInterpDispatch() 146 __ Movq(Operand(callTargetRegister, TaggedObject::HCLASS_OFFSET), tempRegister); // hclass in AsmInterpEntryDispatch() 147 __ Movq(Operand(tempRegister, JSHClass::BIT_FIELD_OFFSET), bitFieldRegister); in AsmInterpEntryDispatch() 166 __ Leaq(Operand(argvRegister, NUM_MANDATORY_JSFUNC_ARGS * JSTaggedValue::TaggedTypeSize()), in AsmInterpEntryDispatch() 180 …__ Movq(Operand(rax, trampolineIdRegister, Times8, JSThread::GlueData::GetRTStubEntriesOffset(fals… in AsmInterpEntryDispatch() 194 __ Movq(Operand(methodRegister, Method::NATIVE_POINTER_OR_BYTECODE_ARRAY_OFFSET), pcRegister); in PushFrameState() [all …]
|
D | optimized_fast_call.cpp | 52 __ Movq(Operand(r8, 0), rsi); // func in OptimizedFastCallEntry() 53 __ Movq(Operand(r8, FRAME_SLOT_SIZE), rdx); // thisobj in OptimizedFastCallEntry() 62 __ Movq(prevFpReg, Operand(glueReg, JSThread::GlueData::GetLeaveFrameOffset(false))); in OptimizedFastCallEntry() 117 __ Leaq(Operand(rsp, 8 * FRAME_SLOT_SIZE), argvReg); // 8: skip 8 frames to get argv in OptimizedFastCallAndPushUndefined() 118 __ Mov(Operand(jsFuncReg, JSFunctionBase::METHOD_OFFSET), method); // get method in OptimizedFastCallAndPushUndefined() 119 __ Mov(Operand(method, Method::CODE_ENTRY_OFFSET), codeAddrReg); // get codeAddress in OptimizedFastCallAndPushUndefined() 120 __ Mov(Operand(method, Method::CALL_FIELD_OFFSET), methodCallField); // get call field in OptimizedFastCallAndPushUndefined() 149 __ Movq(Operand(argvReg, 0), r8); in OptimizedFastCallAndPushUndefined() 160 __ Movq(Operand(argvReg, 0), r9); in OptimizedFastCallAndPushUndefined() 181 …__ Movq(Operand(argvReg, expectedNumArgsReg, Scale::Times8, -FRAME_SLOT_SIZE), r13); // -8: stack … in OptimizedFastCallAndPushUndefined() [all …]
|
D | common_call.cpp | 38 __ Movq(Operand(argV, argc, Scale::Times8, -FRAME_SLOT_SIZE), arg); // -8: stack index in CopyArgumentWithArgV() 50 __ Leaq(Operand(rsp, 24), rbp); // 24: skip pc, prevSp and frame type in PushAsmInterpBridgeFrame() 61 __ Movq(Operand(rbp, FRAME_SLOT_SIZE), r13); in GetArgvAtStack() 62 __ Movq(Operand(rbp, 2 * FRAME_SLOT_SIZE), r14); // 2: skip second argv in GetArgvAtStack() 99 __ Movq(Operand(argv, opArgc, Times8, -8), op); // 8: 8 bytes argv crash rdx=0x8 in PushArgsWithArgvAndCheckStack() 115 __ Movq(Operand(glue, JSThread::GlueData::GetStackLimitOffset(false)), temp1); in StackOverflowCheck()
|
/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 …]
|
D | assembler_x64.cpp | 265 void AssemblerX64::Movq(const Operand &src, Register dst) in Movq() 273 void AssemblerX64::Movq(Register src, const Operand &dst) in Movq() 281 void AssemblerX64::Movq(Immediate src, Operand dst) in Movq() 299 void AssemblerX64::Mov(const Operand &src, Register dst) in Mov() 768 Operand::Operand(Register base, int32_t disp) in Operand() function in panda::ecmascript::x64::Operand 787 Operand::Operand(Register base, Register index, Scale scale, int32_t disp) in Operand() function in panda::ecmascript::x64::Operand 805 Operand::Operand(Register index, Scale scale, int32_t disp) in Operand() function in panda::ecmascript::x64::Operand 813 void Operand::BuildSIB(Scale scale, Register index, Register base) in BuildSIB() 820 void Operand::BuildModerm(int32_t mode, Register rm) in BuildModerm() 826 void Operand::BuildDisp8(int32_t disp) in BuildDisp8() [all …]
|
/arkcompiler/runtime_core/isa/ |
D | isapi.rb | 32 res << Operand.new('acc', 'out', dst_type) 33 res << Operand.new('acc', 'in', src_type) 37 res << Operand.new('acc', 'out', type) 38 res << Operand.new('acc', 'in', type) 40 res << Operand.new('acc', srcdst, type) 61 raise "Unexpected operand signature: #{sig}" 161 operands.map do |operand| 162 name, srcdst, type = Util.parse_operand_signature(operand) 169 operands.map do |operand| 170 name, srcdst, type = Util.parse_operand_signature(operand) [all …]
|
D | asserts.rb | 107 assert('Mnemonic defines operand types') do 121 assert('Instruction::float? should play well with operand types') do 157 assert('Operand type should be one of none, ref, u1, u2, i8, u8, i16, u16, i32, u32, b32, i64, u64,… 171 assert('Instruction should have not more than one ID operand') do
|
/arkcompiler/ets_frontend/ts2panda/src/ |
D | ts2panda.ts | 111 let operand = operands[i]; 112 if (operand instanceof VReg) { 113 insRegs.push((<VReg>operand).num); 117 if (operand instanceof Imm) { 118 insImms.push((<Imm>operand).value); 122 if (typeof (operand) === "string") { 123 insIds.push(operand); 127 if (operand instanceof Label) { 128 let labelName = Ts2Panda.labelPrefix + operand.id; 134 insn.operands.forEach((operand: OperandType) => { [all …]
|
/arkcompiler/runtime_core/compiler/optimizer/templates/ |
D | inst_checker_gen.h.erb | 51 …ASSERT_DO(CheckType(inst->GetType(), <%= inst.dst.types.map { |x| Operand::cpp_type(x) }.join(', '… 59 % inst.inputs.each_with_index do |operand, i| 60 % if operand.has('save_state') 63 …ASSERT_DO(CheckType(GetInputType(inst, <%= i %>), <%= operand.types.map { |x| Operand::cpp_type(x)…
|
D | instructions.rb | 60 class Operand class 140 @operands = signature.map { |sgn| Operand.new(sgn) } 146 raise "Destination can be only first operand" if inputs.any? { |x| x.is_dst? }
|
/arkcompiler/runtime_core/compiler/optimizer/ir/ |
D | instructions.yaml | 20 For info about operand tokens see the 'legend' section 22 …Note: any check instructions might be eliminated by optimizer, thus operand checks (nc, zc, bc, ng… 203 "Operand tokens": 204 d: operand is a destination, operand is a source when 'd' is not specified 230 dyn: dynamic operands, means that operand can repeat zero or more times 252 no_dst: Instruction has no destination operand 253 pseudo_dst: Instruction has pseudo destination operand, i.e. it doesn't affect on dataflow
|
/arkcompiler/ets_runtime/test/typeinfer/automatedcases/ |
D | logicalOrExpressionIsNotContextuallyTyped.ts | 22 // If the || expression is not contextually typed, the right operand is contextually typed 23 // by the type of the left operand and the result is of the best common type of the two 24 // operand types.
|
D | typeGuardsInRightOperandOfOrOrOperator.ts | 21 // In the right operand of a || operation, 22 // the type of a letiable or parameter is narrowed by any type guard in the left operand when false… 23 // provided the right operand contains no assignments to the letiable or parameter. 36 // modify x in right hand operand 52 // modify x in right hand operand with string type itself
|
D | typeGuardsInRightOperandOfAndAndOperator.ts | 21 // In the right operand of a && operation, 22 // the type of a letiable or parameter is narrowed by any type guard in the left operand when true. 35 // modify x in right hand operand 51 // modify x in right hand operand with string type itself
|
/arkcompiler/runtime_core/disassembler/templates/ |
D | bc_ins_to_pandasm_ins.cpp.erb | 35 % i.operands.each do |operand| 36 % if (operand.name == :imm) 37 % if (operand.type != "i64") 44 % elsif (operand.name == :v)
|
/arkcompiler/ets_frontend/es2panda/ir/expressions/ |
D | unaryExpression.cpp | 67 compiler::Operand prop = argument_->AsMemberExpression()->CompileKey(pg); in Compile() 71 // compile the delete operand. in Compile() 132 … checker->ThrowTypeError("The operand of a delete operator must be a property reference.", in Check() 139 … checker->ThrowTypeError("The operand of a delete operator cannot be a private identifier.", in Check() 146 … checker->ThrowTypeError("The operand of a delete operator cannot be a readonly property.", in Check() 151 …checker->ThrowTypeError("The operand of a delete operator must be a optional.", argument_->Start()… in Check()
|
D | updateExpression.cpp | 62 …checker->ThrowTypeError("An arithmetic operand must be of type 'any', 'number', 'bigint' or an enu… in Check() 67 …argument_, "The operand of an increment or decrement operator must be a variable or a property acc… in Check() 68 "The operand of an increment or decrement operator may not be an optional property access"); in Check()
|
/arkcompiler/ets_frontend/ts2panda/tests/statements/ |
D | for.test.ts | 111 let operand = new VReg(); variable 132 new Sta(operand), 133 new Lda(operand), 153 let operand = new VReg(); variable 174 new Sta(operand), 175 new Lda(operand),
|
/arkcompiler/ets_frontend/es2panda/compiler/core/ |
D | pandagen.h | 293 void LoadObjProperty(const ir::AstNode *node, VReg obj, const Operand &prop); 297 void StoreObjProperty(const ir::AstNode *node, VReg obj, const Operand &prop); 298 …void StoreOwnProperty(const ir::AstNode *node, VReg obj, const Operand &prop, bool nameSetting = f… 299 void DeleteObjProperty(const ir::AstNode *node, VReg obj, const Operand &prop); 332 void Unary(const ir::AstNode *node, lexer::TokenType op, VReg operand); 438 void StoreSuperProperty(const ir::AstNode *node, VReg obj, const Operand &prop); 439 void LoadSuperProperty(const ir::AstNode *node, VReg obj, const Operand &prop); 471 Operand ToNamedPropertyKey(const ir::Expression *prop, bool isComputed); 472 Operand ToPropertyKey(const ir::Expression *prop, bool isComputed);
|
/arkcompiler/runtime_core/libpandafile/ |
D | pandafile_isapi.rb | 41 Operand.class_eval do 59 # tag - the same as in Operand isapi class
|
/arkcompiler/ets_runtime/ecmascript/compiler/trampoline/aarch64/ |
D | common_call.cpp | 109 __ Add(argv, argv, Operand(argc.W(), UXTW, 3)); // 3: argc * 8 in PushArgsWithArgv() 140 __ Sub(op, currentSlot, Operand(op, UXTX, 0)); in StackOverflowCheck() 141 __ Cmp(op, Operand(numArgs, LSL, 3)); // 3: each args occupies 8 bytes in StackOverflowCheck()
|
/arkcompiler/runtime_core/libpandafile/templates/ |
D | bytecode_instruction-inl_gen.h.erb | 91 static_assert(HasId(format, idx), "Instruction doesn't have id operand with such index"); 121 ASSERT_PRINT(HasId(format, idx), "Instruction doesn't have imm operand with such index"); 152 ASSERT_PRINT(HasId(format, idx), "Instruction doesn't have id operand with such index"); 186 static_assert(HasVReg(format, idx), "Instruction doesn't have vreg operand with such index"); 213 ASSERT_PRINT(HasVReg(format, idx), "Instruction doesn't have vreg operand with such index"); 249 static_assert(HasImm(format, idx), "Instruction doesn't have imm operand with such index"); 275 ASSERT_PRINT(HasImm(format, idx), "Instruction doesn't have imm operand with such index");
|