本文整理汇总了Java中org.jf.dexlib2.iface.instruction.formats.Instruction22s类的典型用法代码示例。如果您正苦于以下问题:Java Instruction22s类的具体用法?Java Instruction22s怎么用?Java Instruction22s使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
Instruction22s类属于org.jf.dexlib2.iface.instruction.formats包,在下文中一共展示了Instruction22s类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: newBuilderInstruction22s
import org.jf.dexlib2.iface.instruction.formats.Instruction22s; //导入依赖的package包/类
@Nonnull
private BuilderInstruction22s newBuilderInstruction22s(@Nonnull Instruction22s instruction) {
return new BuilderInstruction22s(
instruction.getOpcode(),
instruction.getRegisterA(),
instruction.getRegisterB(),
instruction.getNarrowLiteral());
}
示例2: of
import org.jf.dexlib2.iface.instruction.formats.Instruction22s; //导入依赖的package包/类
public static ImmutableInstruction22s of(Instruction22s instruction) {
if (instruction instanceof ImmutableInstruction22s) {
return (ImmutableInstruction22s)instruction;
}
return new ImmutableInstruction22s(
instruction.getOpcode(),
instruction.getRegisterA(),
instruction.getRegisterB(),
instruction.getNarrowLiteral());
}
示例3: jimplify
import org.jf.dexlib2.iface.instruction.formats.Instruction22s; //导入依赖的package包/类
public void jimplify (DexBody body) {
if(!(instruction instanceof Instruction22s) && !(instruction instanceof Instruction22b))
throw new IllegalArgumentException("Expected Instruction22s or Instruction22b but got: "+instruction.getClass());
NarrowLiteralInstruction binOpLitInstr = (NarrowLiteralInstruction) this.instruction;
int dest = ((TwoRegisterInstruction) instruction).getRegisterA();
int source = ((TwoRegisterInstruction) instruction).getRegisterB();
Local source1 = body.getRegisterLocal(source);
IntConstant constant = IntConstant.v((int)binOpLitInstr.getNarrowLiteral());
expr = getExpression(source1, constant);
assign = Jimple.v().newAssignStmt(body.getRegisterLocal(dest), expr);
assign.addTag(getTag());
setUnit(assign);
addTags(assign);
body.add(assign);
if (IDalvikTyper.ENABLE_DVKTYPER) {
Debug.printDbg(IDalvikTyper.DEBUG, "constraint: "+ assign);
int op = (int)instruction.getOpcode().value;
if (op >= 0xd8) {
op -= 0xd8;
} else {
op -= 0xd0;
}
BinopExpr bexpr = (BinopExpr)expr;
//body.dvkTyper.setType((op == 1) ? bexpr.getOp2Box() : bexpr.getOp1Box(), op1BinType[op]);
DalvikTyper.v().setType(((JAssignStmt)assign).leftBox, op1BinType[op], false);
}
}
示例4: of
import org.jf.dexlib2.iface.instruction.formats.Instruction22s; //导入依赖的package包/类
public static ImmutableInstruction22s of(Instruction22s instruction) {
if (instruction instanceof ImmutableInstruction22s) {
return (ImmutableInstruction22s) instruction;
}
return new ImmutableInstruction22s(
instruction.getOpcode(),
instruction.getRegisterA(),
instruction.getRegisterB(),
instruction.getNarrowLiteral());
}
示例5: write
import org.jf.dexlib2.iface.instruction.formats.Instruction22s; //导入依赖的package包/类
public void write(@Nonnull Instruction22s instruction) {
try {
writer.write(instruction.getOpcode().value);
writer.write(packNibbles(instruction.getRegisterA(), instruction.getRegisterB()));
writer.writeShort(instruction.getNarrowLiteral());
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}