Home
last modified time | relevance | path

Searched full:operand (Results 1 – 25 of 114) sorted by relevance

12345

/arkcompiler/ets_runtime/ecmascript/compiler/assembler/aarch64/
Dassembler_aarch64.h157 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 …]
Dassembler_aarch64.cpp89 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/
Doptimized_call.cpp65 __ 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 …]
Dasm_interpreter_call.cpp93 __ 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 …]
Doptimized_fast_call.cpp52 __ 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 …]
Dcommon_call.cpp38 __ 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/
Dassembler_x64.h61 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 …]
Dassembler_x64.cpp265 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/
Disapi.rb32 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 …]
Dasserts.rb107 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/
Dts2panda.ts111 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/
Dinst_checker_gen.h.erb51 …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)…
Dinstructions.rb60 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/
Dinstructions.yaml20 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/
DlogicalOrExpressionIsNotContextuallyTyped.ts22 // 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.
DtypeGuardsInRightOperandOfOrOrOperator.ts21 // 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
DtypeGuardsInRightOperandOfAndAndOperator.ts21 // 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/
Dbc_ins_to_pandasm_ins.cpp.erb35 % 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/
DunaryExpression.cpp67 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()
DupdateExpression.cpp62 …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/
Dfor.test.ts111 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/
Dpandagen.h293 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/
Dpandafile_isapi.rb41 Operand.class_eval do
59 # tag - the same as in Operand isapi class
/arkcompiler/ets_runtime/ecmascript/compiler/trampoline/aarch64/
Dcommon_call.cpp109 __ 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/
Dbytecode_instruction-inl_gen.h.erb91 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");

12345