Search in sources :

Example 1 with CstLiteral64

use of com.taobao.android.dx.rop.cst.CstLiteral64 in project atlas by alibaba.

the class Form51l method writeTo.

/** {@inheritDoc} */
@Override
public void writeTo(AnnotatedOutput out, DalvInsn insn) {
    RegisterSpecList regs = insn.getRegisters();
    long value = ((CstLiteral64) ((CstInsn) insn).getConstant()).getLongBits();
    write(out, opcodeUnit(insn, regs.get(0).getReg()), value);
}
Also used : CstLiteral64(com.taobao.android.dx.rop.cst.CstLiteral64) RegisterSpecList(com.taobao.android.dx.rop.code.RegisterSpecList)

Example 2 with CstLiteral64

use of com.taobao.android.dx.rop.cst.CstLiteral64 in project atlas by alibaba.

the class Form51l method isCompatible.

/** {@inheritDoc} */
@Override
public boolean isCompatible(DalvInsn insn) {
    RegisterSpecList regs = insn.getRegisters();
    if (!((insn instanceof CstInsn) && (regs.size() == 1) && unsignedFitsInByte(regs.get(0).getReg()))) {
        return false;
    }
    CstInsn ci = (CstInsn) insn;
    Constant cst = ci.getConstant();
    return (cst instanceof CstLiteral64);
}
Also used : CstInsn(com.taobao.android.dx.dex.code.CstInsn) Constant(com.taobao.android.dx.rop.cst.Constant) CstLiteral64(com.taobao.android.dx.rop.cst.CstLiteral64) RegisterSpecList(com.taobao.android.dx.rop.code.RegisterSpecList)

Aggregations

RegisterSpecList (com.taobao.android.dx.rop.code.RegisterSpecList)2 CstLiteral64 (com.taobao.android.dx.rop.cst.CstLiteral64)2 CstInsn (com.taobao.android.dx.dex.code.CstInsn)1 Constant (com.taobao.android.dx.rop.cst.Constant)1