Home
last modified time | relevance | path

Searched refs:opcode (Results 1 – 25 of 85) sorted by relevance

1234

/art/tools/dexfuzz/src/dexfuzz/program/mutators/
DValuePrinter.java216 Opcode opcode = mInsn.insn.info.opcode; in getInstructionOutputType() local
217 if (opcode == Opcode.CONST_STRING || opcode == Opcode.CONST_STRING_JUMBO) { in getInstructionOutputType()
220 if (opcode == Opcode.IGET_BOOLEAN || opcode == Opcode.SGET_BOOLEAN) { in getInstructionOutputType()
223 if (opcode == Opcode.IGET_BYTE || opcode == Opcode.SGET_BYTE in getInstructionOutputType()
224 || opcode == Opcode.INT_TO_BYTE) { in getInstructionOutputType()
227 if (opcode == Opcode.IGET_CHAR || opcode == Opcode.SGET_CHAR in getInstructionOutputType()
228 || opcode == Opcode.INT_TO_CHAR) { in getInstructionOutputType()
231 if (opcode == Opcode.IGET_SHORT || opcode == Opcode.SGET_SHORT in getInstructionOutputType()
232 || opcode == Opcode.INT_TO_SHORT) { in getInstructionOutputType()
235 if (opcode == Opcode.NEG_INT || opcode == Opcode.NOT_INT in getInstructionOutputType()
[all …]
DInvokeChanger.java152 Opcode opcode = mInsn.insn.info.opcode; in getDifferentInvokeCallOpcode() local
153 if (isSimpleInvokeInst(opcode)) { in getDifferentInvokeCallOpcode()
154 int index = opcode.ordinal() - Opcode.INVOKE_VIRTUAL.ordinal(); in getDifferentInvokeCallOpcode()
157 } else if (isRangeInvokeInst(opcode)) { in getDifferentInvokeCallOpcode()
158 int index = opcode.ordinal() - Opcode.INVOKE_VIRTUAL_RANGE.ordinal(); in getDifferentInvokeCallOpcode()
162 return opcode; in getDifferentInvokeCallOpcode()
165 private boolean isSimpleInvokeInst(Opcode opcode){ in isSimpleInvokeInst() argument
166 return Opcode.isBetween(opcode, Opcode.INVOKE_VIRTUAL, Opcode.INVOKE_INTERFACE); in isSimpleInvokeInst()
169 private boolean isRangeInvokeInst(Opcode opcode){ in isRangeInvokeInst() argument
170 return Opcode.isBetween(opcode, Opcode.INVOKE_VIRTUAL_RANGE, Opcode.INVOKE_INTERFACE_RANGE); in isRangeInvokeInst()
[all …]
DRandomBranchChanger.java53 Opcode opcode = mInsn.insn.info.opcode; in getModifiedOpcode() local
54 if (Opcode.isBetween(opcode, Opcode.IF_EQ, Opcode.IF_LE)) { in getModifiedOpcode()
55 int index = opcode.ordinal() - Opcode.IF_EQ.ordinal(); in getModifiedOpcode()
58 } else if (Opcode.isBetween(opcode, Opcode.IF_EQZ, Opcode.IF_LEZ)) { in getModifiedOpcode()
59 int index = opcode.ordinal() - Opcode.IF_EQZ.ordinal(); in getModifiedOpcode()
63 return opcode; in getModifiedOpcode()
DCmpBiasChanger.java134 Opcode opcode = mInsn.insn.info.opcode; in getLegalDifferentOpcode() local
135 if (opcode == Opcode.CMPG_DOUBLE) { in getLegalDifferentOpcode()
138 if (opcode == Opcode.CMPL_DOUBLE) { in getLegalDifferentOpcode()
141 if (opcode == Opcode.CMPG_FLOAT) { in getLegalDifferentOpcode()
148 Opcode opcode = mInsn.insn.info.opcode; in isCmpBiasOperation() local
149 if (Opcode.isBetween(opcode, Opcode.CMPL_FLOAT, Opcode.CMPG_DOUBLE)) { in isCmpBiasOperation()
DOppositeBranchChanger.java36 Opcode opcode = mInsn.insn.info.opcode; in getModifiedOpcode() local
37 switch (opcode) { in getModifiedOpcode()
64 return opcode; in getModifiedOpcode()
DInstructionDuplicator.java74 Opcode opcode = oldInsn.insn.info.opcode; in generateMutation() local
76 if (opcode == Opcode.SPARSE_SWITCH || opcode == Opcode.PACKED_SWITCH in generateMutation()
77 || opcode == Opcode.FILL_ARRAY_DATA || oldInsn.insn.justRaw) { in generateMutation()
/art/libdexfile/dex/
Ddex_instruction_utils.h54 constexpr bool IsInstructionDirectConst(Instruction::Code opcode) { in IsInstructionDirectConst() argument
55 return Instruction::CONST_4 <= opcode && opcode <= Instruction::CONST_WIDE_HIGH16; in IsInstructionDirectConst()
58 constexpr bool IsInstructionConstWide(Instruction::Code opcode) { in IsInstructionConstWide() argument
59 return Instruction::CONST_WIDE_16 <= opcode && opcode <= Instruction::CONST_WIDE_HIGH16; in IsInstructionConstWide()
62 constexpr bool IsInstructionReturn(Instruction::Code opcode) { in IsInstructionReturn() argument
63 return Instruction::RETURN_VOID <= opcode && opcode <= Instruction::RETURN_OBJECT; in IsInstructionReturn()
66 constexpr bool IsInstructionInvoke(Instruction::Code opcode) { in IsInstructionInvoke() argument
67 return Instruction::INVOKE_VIRTUAL <= opcode && opcode <= Instruction::INVOKE_INTERFACE_RANGE && in IsInstructionInvoke()
68 opcode != Instruction::RETURN_VOID_NO_BARRIER; in IsInstructionInvoke()
71 constexpr bool IsInstructionQuickInvoke(Instruction::Code opcode) { in IsInstructionQuickInvoke() argument
[all …]
Ddex_instruction.cc43 static constexpr int8_t InstructionSizeInCodeUnitsByOpcode(Instruction::Code opcode, in InstructionSizeInCodeUnitsByOpcode() argument
45 if (opcode == Instruction::Code::NOP) { in InstructionSizeInCodeUnitsByOpcode()
63 #define INSTRUCTION_DESCR(opcode, c, p, format, index, flags, eflags, vflags) \ argument
94 Code opcode = static_cast<Code>(insn & 0xFF); in CanFlowThrough() local
95 return FlagsOf(opcode) & Instruction::kContinue; in CanFlowThrough()
177 const char* opcode = kInstructionNames[Opcode()]; in DumpString() local
179 case k10x: os << opcode; break; in DumpString()
180 case k12x: os << StringPrintf("%s v%d, v%d", opcode, VRegA_12x(), VRegB_12x()); break; in DumpString()
181 case k11n: os << StringPrintf("%s v%d, #%+d", opcode, VRegA_11n(), VRegB_11n()); break; in DumpString()
182 case k11x: os << StringPrintf("%s v%d", opcode, VRegA_11x()); break; in DumpString()
[all …]
Ddex_instruction.h84 #define INSTRUCTION_ENUM(opcode, cname, p, f, i, a, e, v) cname = (opcode), argument
291 static const char* Name(Code opcode) { in Name() argument
292 return kInstructionNames[opcode]; in Name()
489 void SetOpcode(Code opcode) { in SetOpcode() argument
490 DCHECK_LT(static_cast<uint16_t>(opcode), 256u); in SetOpcode()
492 insns[0] = (insns[0] & 0xff00) | static_cast<uint16_t>(opcode); in SetOpcode()
532 static Format FormatOf(Code opcode) { in FormatOf() argument
533 return kInstructionDescriptors[opcode].format; in FormatOf()
537 static IndexType IndexTypeOf(Code opcode) { in IndexTypeOf() argument
538 return kInstructionDescriptors[opcode].index_type; in IndexTypeOf()
[all …]
/art/tools/dexfuzz/src/dexfuzz/rawdex/
DCodeItem.java149 Opcode opcode = insn.info.opcode; in incrementIndex() local
152 if (opcode == Opcode.CONST_STRING || opcode == Opcode.CONST_STRING_JUMBO) { in incrementIndex()
160 if (opcode == Opcode.CONST_CLASS in incrementIndex()
161 || opcode == Opcode.CHECK_CAST in incrementIndex()
162 || opcode == Opcode.NEW_INSTANCE in incrementIndex()
163 || opcode == Opcode.FILLED_NEW_ARRAY in incrementIndex()
164 || opcode == Opcode.FILLED_NEW_ARRAY_RANGE) { in incrementIndex()
169 } else if (opcode == Opcode.INSTANCE_OF || opcode == Opcode.NEW_ARRAY) { in incrementIndex()
177 if (Opcode.isBetween(opcode, Opcode.SGET, Opcode.SPUT_SHORT)) { in incrementIndex()
182 } else if (Opcode.isBetween(opcode, Opcode.IGET, Opcode.IPUT_SHORT)) { in incrementIndex()
[all …]
DOpcodeInfo.java27 public final Opcode opcode; field in OpcodeInfo
35 public OpcodeInfo(Opcode opcode, String name, int opcodeValue, AbstractFormat fmt) { in OpcodeInfo() argument
36 this.opcode = opcode; in OpcodeInfo()
/art/compiler/dex/
Dinline_method_analyser.h86 InlineMethodOpcode opcode; member
106 static constexpr bool IsInstructionIGet(Instruction::Code opcode) { in IsInstructionIGet() argument
107 return Instruction::IGET <= opcode && opcode <= Instruction::IGET_SHORT; in IsInstructionIGet()
110 static constexpr bool IsInstructionIPut(Instruction::Code opcode) { in IsInstructionIPut() argument
111 return Instruction::IPUT <= opcode && opcode <= Instruction::IPUT_SHORT; in IsInstructionIPut()
114 static constexpr uint16_t IGetVariant(Instruction::Code opcode) { in IGetVariant() argument
115 return opcode - Instruction::IGET; in IGetVariant()
118 static constexpr uint16_t IPutVariant(Instruction::Code opcode) { in IPutVariant() argument
119 return opcode - Instruction::IPUT; in IPutVariant()
Dinline_method_analyser.cc61 template <Instruction::Code opcode> bool Opcode();
111 template <Instruction::Code opcode>
113 return instruction_->Opcode() == opcode; in Opcode()
394 result->opcode = kInlineOpConstructor; in AnalyseConstructor()
453 Instruction::Code opcode = code_item->begin()->Opcode(); in AnalyseMethodCode() local
455 switch (opcode) { in AnalyseMethodCode()
458 result->opcode = kInlineOpNop; in AnalyseMethodCode()
533 result->opcode = kInlineOpReturnArg; in AnalyseReturnMethod()
569 result->opcode = kInlineOpNonWideConst; in AnalyseConstMethod()
581 Instruction::Code opcode = instruction->Opcode(); in AnalyseIGetMethod() local
[all …]
/art/runtime/interpreter/mterp/arm64/
Dcontrol_flow.S152 b.ne .L${opcode}_check
153 .L${opcode}_return:
157 .L${opcode}_check:
159 b .L${opcode}_return
170 b.ne .L${opcode}_check
171 .L${opcode}_return:
174 .L${opcode}_check:
176 b .L${opcode}_return
182 b.ne .L${opcode}_check
183 .L${opcode}_return:
[all …]
Darithmetic.S191 %def shiftWide(opcode="shl"):
205 $opcode x0, x1, x2 // Do the shift. Only low 6 bits of x2 are used.
211 %def shiftWide2addr(opcode="lsl"):
221 $opcode x0, x0, x1 // Do the shift. Only low 6 bits of x1 are used.
444 % shiftWide(opcode="lsl")
447 % shiftWide2addr(opcode="lsl")
459 % shiftWide(opcode="asr")
462 % shiftWide2addr(opcode="asr")
486 % shiftWide(opcode="lsr")
489 % shiftWide2addr(opcode="lsr")
/art/runtime/interpreter/mterp/common/
Dgen_setup.py27 opcode = "" variable
37 global opnum, opcode
38 opnum, opcode = str(num), name
47 opnum, opcode = None, None
55 name = "mterp_" + opcode + "_helper"
/art/runtime/arch/x86/
Dfault_handler_x86.cc113 uint8_t opcode = *pc; in GetInstructionSize() local
125 switch (opcode) { in GetInstructionSize()
146 opcode = *pc; in GetInstructionSize()
156 if (x86_64 && opcode >= 0x40 && opcode <= 0x4f) { in GetInstructionSize()
157 opcode = *pc; in GetInstructionSize()
161 if (opcode == 0x0f) { in GetInstructionSize()
164 opcode = *pc; in GetInstructionSize()
171 switch (opcode) { in GetInstructionSize()
187 switch (opcode) { in GetInstructionSize()
227 immediate_size = (opcode == 0xf6) ? 1 : (operand_size_prefix ? 2 : 4); in GetInstructionSize()
[all …]
/art/tools/dexfuzz/src/dexfuzz/rawdex/formats/
DFormat21c.java67 if (info.opcode == Opcode.CONST_STRING) { in getPoolIndexKind()
70 if (info.opcode == Opcode.CONST_CLASS in getPoolIndexKind()
71 || info.opcode == Opcode.CHECK_CAST in getPoolIndexKind()
72 || info.opcode == Opcode.NEW_INSTANCE) { in getPoolIndexKind()
/art/libelffile/dwarf/
Ddebug_line_opcode_writer.h180 int opcode = kOpcodeBase + (delta_line - kLineBase) + in AddRow() local
182 if (opcode > UINT8_MAX) { in AddRow()
185 opcode -= (kLineRange * const_advance); in AddRow()
186 if (opcode <= UINT8_MAX) { in AddRow()
192 opcode = kOpcodeBase + (delta_line - kLineBase); in AddRow()
195 DCHECK(kOpcodeBase <= opcode && opcode <= 0xFF); in AddRow()
196 this->PushUint8(opcode); // Special opcode. in AddRow()
/art/runtime/interpreter/mterp/arm/
Dother.S17 GET_INST_OPCODE ip @ extract opcode from rINST
33 GET_INST_OPCODE ip @ extract opcode from rINST
43 GET_INST_OPCODE ip @ extract opcode from rINST
51 GET_INST_OPCODE ip @ ip<- opcode from rINST
65 GET_INST_OPCODE ip @ extract opcode from rINST
91 GET_INST_OPCODE ip @ extract opcode from rINST
106 GET_INST_OPCODE ip @ extract opcode from rINST
118 GET_INST_OPCODE ip @ extract opcode from rINST
132 GET_INST_OPCODE ip @ extract opcode from rINST
145 GET_INST_OPCODE ip @ extract opcode from rINST
[all …]
Dobject.S10 PREFETCH_INST 2 @ prefetch next opcode
15 GET_INST_OPCODE ip @ extract opcode from rINST
34 GET_INST_OPCODE ip @ extract opcode from rINST
123 GET_INST_OPCODE ip @ extract opcode from rINST
162 GET_INST_OPCODE ip @ extract opcode from rINST
188 GET_INST_OPCODE ip @ extract opcode from rINST
224 GET_INST_OPCODE ip @ extract opcode from rINST
239 GET_INST_OPCODE ip @ extract opcode from rINST
263 GET_INST_OPCODE ip @ extract opcode from rINST
279 GET_INST_OPCODE ip @ extract opcode from rINST
/art/runtime/interpreter/mterp/x86/
Darithmetic.S18 jz .L${opcode}_8 # Do 8-bit divide
21 jz .L${opcode}_16 # Do 16-bit divide
23 jne .L${opcode}_32
25 jne .L${opcode}_32
27 jmp .L${opcode}_finish
31 .L${opcode}_32:
34 jmp .L${opcode}_finish
35 .L${opcode}_8:
44 jmp .L${opcode}_finish
45 .L${opcode}_16:
[all …]
Dfloating_point.S24 jp .L${opcode}_nan_is_${nanval}
25 je .L${opcode}_finish
26 jb .L${opcode}_less
27 .L${opcode}_nan_is_pos:
29 jmp .L${opcode}_finish
30 .L${opcode}_nan_is_neg:
31 .L${opcode}_less:
33 .L${opcode}_finish:
/art/tools/dexanalyze/
Ddexanalyze_bytecode.cc237 const Instruction::Code opcode = inst->Opcode(); in ProcessCodeItem() local
238 Instruction::Code new_opcode = opcode; in ProcessCodeItem()
239 ++opcode_count_[opcode]; in ProcessCodeItem()
240 switch (opcode) { in ProcessCodeItem()
294 const bool is_jumbo = opcode == Instruction::CONST_STRING_JUMBO; in ProcessCodeItem()
304 CHECK(InstNibbles(opcode, {out_reg, idx})); in ProcessCodeItem()
410 ++first_arg_reg_count_[opcode]; in ProcessCodeItem()
415 if (InstNibbles(opcode, new_args)) { in ProcessCodeItem()
432 InstNibbles(opcode, {reg, static_cast<uint16_t>(offset)})) { in ProcessCodeItem()
475 if (opcode == Instruction::NEW_INSTANCE) { in ProcessCodeItem()
[all …]
/art/runtime/interpreter/mterp/x86_64/
Dfloating_point.S24 jp .L${opcode}_nan_is_${nanval}
25 je .L${opcode}_finish
26 jb .L${opcode}_less
27 .L${opcode}_nan_is_pos:
29 jmp .L${opcode}_finish
30 .L${opcode}_nan_is_neg:
31 .L${opcode}_less:
33 .L${opcode}_finish:

1234