Lines Matching refs:opcode

30   int opcode;
35 opcode = kX86MovsdRR;
39 opcode = kX86MovssRR;
41 opcode = kX86MovdxrRR;
45 opcode = kX86MovdrxRR;
48 DCHECK_NE((EncodingMap[opcode].flags & IS_BINARY_OP), 0ULL);
49 LIR* res = RawLIR(current_dalvik_offset_, opcode, r_dest.GetReg(), r_src.GetReg());
121 X86OpCode opcode = kX86Bkpt;
123 case kOpNeg: opcode = r_dest_src.Is64Bit() ? kX86Neg64R : kX86Neg32R; break;
124 case kOpNot: opcode = r_dest_src.Is64Bit() ? kX86Not64R : kX86Not32R; break;
125 case kOpRev: opcode = r_dest_src.Is64Bit() ? kX86Bswap64R : kX86Bswap32R; break;
126 case kOpBlx: opcode = kX86CallR; break;
130 return NewLIR1(opcode, r_dest_src.GetReg());
134 X86OpCode opcode = kX86Bkpt;
139 case kOpAdd: opcode = byte_imm ? kX86Add64RI8 : kX86Add64RI; break;
140 case kOpSub: opcode = byte_imm ? kX86Sub64RI8 : kX86Sub64RI; break;
141 case kOpLsl: opcode = kX86Sal64RI; break;
142 case kOpLsr: opcode = kX86Shr64RI; break;
143 case kOpAsr: opcode = kX86Sar64RI; break;
144 case kOpCmp: opcode = byte_imm ? kX86Cmp64RI8 : kX86Cmp64RI; break;
150 case kOpLsl: opcode = kX86Sal32RI; break;
151 case kOpLsr: opcode = kX86Shr32RI; break;
152 case kOpAsr: opcode = kX86Sar32RI; break;
153 case kOpAdd: opcode = byte_imm ? kX86Add32RI8 : kX86Add32RI; break;
154 case kOpOr: opcode = byte_imm ? kX86Or32RI8 : kX86Or32RI; break;
155 case kOpAdc: opcode = byte_imm ? kX86Adc32RI8 : kX86Adc32RI; break;
156 // case kOpSbb: opcode = kX86Sbb32RI; break;
157 case kOpAnd: opcode = byte_imm ? kX86And32RI8 : kX86And32RI; break;
158 case kOpSub: opcode = byte_imm ? kX86Sub32RI8 : kX86Sub32RI; break;
159 case kOpXor: opcode = byte_imm ? kX86Xor32RI8 : kX86Xor32RI; break;
160 case kOpCmp: opcode = byte_imm ? kX86Cmp32RI8 : kX86Cmp32RI; break;
167 opcode = kX86Mov32RI;
170 opcode = byte_imm ? kX86Imul32RRI8 : kX86Imul32RRI;
171 return NewLIR3(opcode, r_dest_src1.GetReg(), r_dest_src1.GetReg(), value);
173 opcode = kX86Mov32RI;
177 opcode = kX86Mov32RI;
181 opcode = kX86Mov32RI;
185 opcode = kX86Mov32RI;
192 return NewLIR2(opcode, r_dest_src1.GetReg(), value);
197 X86OpCode opcode = kX86Nop;
215 case kOpSub: opcode = is64Bit ? kX86Sub64RR : kX86Sub32RR; break;
216 case kOpSbc: opcode = is64Bit ? kX86Sbb64RR : kX86Sbb32RR; break;
217 case kOpLsl: opcode = is64Bit ? kX86Sal64RC : kX86Sal32RC; src2_must_be_cx = true; break;
218 case kOpLsr: opcode = is64Bit ? kX86Shr64RC : kX86Shr32RC; src2_must_be_cx = true; break;
219 case kOpAsr: opcode = is64Bit ? kX86Sar64RC : kX86Sar32RC; src2_must_be_cx = true; break;
220 case kOpMov: opcode = is64Bit ? kX86Mov64RR : kX86Mov32RR; break;
221 case kOpCmp: opcode = is64Bit ? kX86Cmp64RR : kX86Cmp32RR; break;
222 case kOpAdd: opcode = is64Bit ? kX86Add64RR : kX86Add32RR; break;
223 case kOpAdc: opcode = is64Bit ? kX86Adc64RR : kX86Adc32RR; break;
224 case kOpAnd: opcode = is64Bit ? kX86And64RR : kX86And32RR; break;
225 case kOpOr: opcode = is64Bit ? kX86Or64RR : kX86Or32RR; break;
226 case kOpXor: opcode = is64Bit ? kX86Xor64RR : kX86Xor32RR; break;
237 opcode = is64Bit ? kX86Bkpt : kX86Movsx8RR;
240 case kOp2Short: opcode = is64Bit ? kX86Bkpt : kX86Movsx16RR; break;
241 case kOp2Char: opcode = is64Bit ? kX86Bkpt : kX86Movzx16RR; break;
242 case kOpMul: opcode = is64Bit ? kX86Bkpt : kX86Imul32RR; break;
248 return NewLIR2(opcode, r_dest_src1.GetReg(), r_src2.GetReg());
253 X86OpCode opcode = kX86Nop;
258 opcode = kX86Mov8RM;
262 opcode = kX86Mov16RM;
266 opcode = kX86Mov32RM;
270 opcode = kX86MovssRM;
274 opcode = kX86MovsdRM;
278 opcode = kX86MovupsRM;
282 opcode = kX86MovapsRM;
286 opcode = kX86MovlpsRM;
290 opcode = kX86MovhpsRM;
300 return NewLIR3(opcode, dest, r_base.GetReg(), offset);
307 X86OpCode opcode = kX86Nop;
311 opcode = kX86Mov8MR;
315 opcode = kX86Mov16MR;
319 opcode = kX86Mov32MR;
323 opcode = kX86MovssMR;
327 opcode = kX86MovsdMR;
331 opcode = kX86MovupsMR;
335 opcode = kX86MovapsMR;
339 opcode = kX86MovlpsMR;
343 opcode = kX86MovhpsMR;
353 return NewLIR3(opcode, r_base.GetReg(), offset, src);
366 X86OpCode opcode = kX86Nop;
369 case kOpSub: opcode = is64Bit ? kX86Sub64RM : kX86Sub32RM; break;
370 case kOpMov: opcode = is64Bit ? kX86Mov64RM : kX86Mov32RM; break;
371 case kOpCmp: opcode = is64Bit ? kX86Cmp64RM : kX86Cmp32RM; break;
372 case kOpAdd: opcode = is64Bit ? kX86Add64RM : kX86Add32RM; break;
373 case kOpAnd: opcode = is64Bit ? kX86And64RM : kX86And32RM; break;
374 case kOpOr: opcode = is64Bit ? kX86Or64RM : kX86Or32RM; break;
375 case kOpXor: opcode = is64Bit ? kX86Xor64RM : kX86Xor32RM; break;
376 case kOp2Byte: opcode = kX86Movsx8RM; break;
377 case kOp2Short: opcode = kX86Movsx16RM; break;
378 case kOp2Char: opcode = kX86Movzx16RM; break;
384 LIR *l = NewLIR3(opcode, r_dest.GetReg(), r_base.GetReg(), offset);
396 X86OpCode opcode = kX86Nop;
398 case kOpSub: opcode = is64Bit ? kX86Sub64MR : kX86Sub32MR; break;
399 case kOpMov: opcode = is64Bit ? kX86Mov64MR : kX86Mov32MR; break;
400 case kOpCmp: opcode = is64Bit ? kX86Cmp64MR : kX86Cmp32MR; break;
401 case kOpAdd: opcode = is64Bit ? kX86Add64MR : kX86Add32MR; break;
402 case kOpAnd: opcode = is64Bit ? kX86And64MR : kX86And32MR; break;
403 case kOpOr: opcode = is64Bit ? kX86Or64MR : kX86Or32MR; break;
404 case kOpXor: opcode = is64Bit ? kX86Xor64MR : kX86Xor32MR; break;
405 case kOpLsl: opcode = is64Bit ? kX86Sal64MC : kX86Sal32MC; break;
406 case kOpLsr: opcode = is64Bit ? kX86Shr64MC : kX86Shr32MC; break;
407 case kOpAsr: opcode = is64Bit ? kX86Sar64MC : kX86Sar32MC; break;
412 LIR *l = NewLIR3(opcode, rs_rX86_SP.GetReg(), displacement, r_value);
424 X86OpCode opcode = kX86Nop;
426 case kOpSub: opcode = is64Bit ? kX86Sub64RM : kX86Sub32RM; break;
427 case kOpMov: opcode = is64Bit ? kX86Mov64RM : kX86Mov32RM; break;
428 case kOpCmp: opcode = is64Bit ? kX86Cmp64RM : kX86Cmp32RM; break;
429 case kOpAdd: opcode = is64Bit ? kX86Add64RM : kX86Add32RM; break;
430 case kOpAnd: opcode = is64Bit ? kX86And64RM : kX86And32RM; break;
431 case kOpOr: opcode = is64Bit ? kX86Or64RM : kX86Or32RM; break;
432 case kOpXor: opcode = is64Bit ? kX86Xor64RM : kX86Xor32RM; break;
433 case kOpMul: opcode = is64Bit ? kX86Bkpt : kX86Imul32RM; break;
438 LIR *l = NewLIR3(opcode, r_dest.GetReg(), rs_rX86_SP.GetReg(), displacement);
499 X86OpCode opcode = IS_SIMM8(value) ? kX86Imul32RRI8 : kX86Imul32RRI;
500 return NewLIR3(opcode, r_dest.GetReg(), r_src.GetReg(), value);
525 X86OpCode opcode = kX86Bkpt;
527 case kOpBlx: opcode = kX86CallT; break;
528 case kOpBx: opcode = kX86JmpT; break;
530 LOG(FATAL) << "Bad opcode: " << op;
533 return NewLIR1(opcode, thread_offset.Int32Value());
538 X86OpCode opcode = kX86Bkpt;
540 case kOpBlx: opcode = kX86CallT; break;
541 case kOpBx: opcode = kX86JmpT; break;
543 LOG(FATAL) << "Bad opcode: " << op;
546 return NewLIR1(opcode, thread_offset.Int32Value());
550 X86OpCode opcode = kX86Bkpt;
552 case kOpBlx: opcode = kX86CallM; break;
554 LOG(FATAL) << "Bad opcode: " << op;
557 return NewLIR2(opcode, r_base.GetReg(), disp);
641 X86OpCode opcode = kX86Nop;
646 opcode = is_array ? kX86MovsdRA : kX86MovsdRM;
648 opcode = is_array ? kX86Mov64RA : kX86Mov64RM;
650 opcode = is_array ? kX86Mov32RA : kX86Mov32RM;
657 opcode = is_array ? kX86Mov64RA : kX86Mov64RM;
665 opcode = is_array ? kX86Mov32RA : kX86Mov32RM;
667 opcode = is_array ? kX86MovssRA : kX86MovssRM;
673 opcode = is_array ? kX86Movzx16RA : kX86Movzx16RM;
677 opcode = is_array ? kX86Movsx16RA : kX86Movsx16RM;
681 opcode = is_array ? kX86Movzx8RA : kX86Movzx8RM;
684 opcode = is_array ? kX86Movsx8RA : kX86Movsx8RM;
692 load = NewLIR3(opcode, r_dest.GetReg(), r_base.GetReg(), displacement + LOWORD_OFFSET);
696 load = NewLIR3(opcode, r_dest.GetHighReg(), r_base.GetReg(),
698 load2 = NewLIR3(opcode, r_dest.GetLowReg(), r_base.GetReg(), displacement + LOWORD_OFFSET);
700 load = NewLIR3(opcode, r_dest.GetLowReg(), r_base.GetReg(), displacement + LOWORD_OFFSET);
701 load2 = NewLIR3(opcode, r_dest.GetHighReg(), r_base.GetReg(),
716 load = NewLIR5(opcode, r_dest.GetReg(), r_base.GetReg(), r_index.GetReg(), scale,
724 load = NewLIR5(opcode, temp.GetReg(), r_base.GetReg(), r_index.GetReg(), scale,
726 load2 = NewLIR5(opcode, r_dest.GetLowReg(), r_base.GetReg(), r_index.GetReg(), scale,
731 load = NewLIR5(opcode, r_dest.GetHighReg(), r_base.GetReg(), r_index.GetReg(), scale,
733 load2 = NewLIR5(opcode, r_dest.GetLowReg(), r_base.GetReg(), r_index.GetReg(), scale,
740 load = NewLIR5(opcode, temp.GetReg(), r_base.GetReg(), r_index.GetReg(), scale,
742 load2 = NewLIR5(opcode, r_dest.GetHighReg(), r_base.GetReg(), r_index.GetReg(), scale,
747 load = NewLIR5(opcode, r_dest.GetLowReg(), r_base.GetReg(), r_index.GetReg(), scale,
749 load2 = NewLIR5(opcode, r_dest.GetHighReg(), r_base.GetReg(), r_index.GetReg(), scale,
788 X86OpCode opcode = kX86Nop;
793 opcode = is_array ? kX86MovsdAR : kX86MovsdMR;
795 opcode = is_array ? kX86Mov64AR : kX86Mov64MR;
797 opcode = is_array ? kX86Mov32AR : kX86Mov32MR;
804 opcode = is_array ? kX86Mov64AR : kX86Mov64MR;
812 opcode = is_array ? kX86Mov32AR : kX86Mov32MR;
814 opcode = is_array ? kX86MovssAR : kX86MovssMR;
821 opcode = is_array ? kX86Mov16AR : kX86Mov16MR;
826 opcode = is_array ? kX86Mov8AR : kX86Mov8MR;
834 store = NewLIR3(opcode, r_base.GetReg(), displacement + LOWORD_OFFSET, r_src.GetReg());
837 store = NewLIR3(opcode, r_base.GetReg(), displacement + LOWORD_OFFSET, r_src.GetLowReg());
838 store2 = NewLIR3(opcode, r_base.GetReg(), displacement + HIWORD_OFFSET, r_src.GetHighReg());
851 store = NewLIR5(opcode, r_base.GetReg(), r_index.GetReg(), scale,
855 store = NewLIR5(opcode, r_base.GetReg(), r_index.GetReg(), scale,
857 store2 = NewLIR5(opcode, r_base.GetReg(), r_index.GetReg(), scale,
929 int opcode = mir->dalvikInsn.opcode;
930 if (MIR::DecodedInstruction::IsPseudoMirOp(opcode)) {
931 AnalyzeExtendedMIR(opcode, bb, mir);
933 AnalyzeMIR(opcode, bb, mir);
939 void X86Mir2Lir::AnalyzeExtendedMIR(int opcode, BasicBlock * bb, MIR *mir) {
940 switch (opcode) {
944 AnalyzeFPInstruction(opcode, bb, mir);
955 void X86Mir2Lir::AnalyzeMIR(int opcode, BasicBlock * bb, MIR *mir) {
959 switch (opcode) {
974 AnalyzeFPInstruction(opcode, bb, mir);
983 AnalyzeInvokeStatic(opcode, bb, mir);
991 void X86Mir2Lir::AnalyzeFPInstruction(int opcode, BasicBlock * bb, MIR *mir) {
993 uint64_t attrs = MIRGraph::GetDataFlowAttributes(static_cast<Instruction::Code>(opcode));
1053 void X86Mir2Lir::AnalyzeInvokeStatic(int opcode, BasicBlock * bb, MIR *mir) {
1066 switch (method.opcode) {