@Override public void caseDup1Inst(Dup1Inst i) { Type firstOpType = i.getOp1Type(); if (isDwordType(firstOpType)) { emit("dup2"); // (form 2) } else { emit("dup"); } }
public void caseDup2_x1Inst(Dup2_x1Inst i) { Type ot = i.getOp1Type(); if (ot instanceof DoubleType || ot instanceof LongType) { remove_types = new Type[] { i.getUnder1Type(), ot }; add_types = new Type[] { ot, i.getUnder1Type(), ot }; } else { remove_types = new Type[] { i.getUnder1Type(), i.getOp2Type(), ot }; add_types = new Type[] { i.getOp2Type(), ot, i.getUnder1Type(), i.getOp2Type(), ot }; } }
public BDup2_x1Inst(Type aOp1Type, Type aOp2Type, Type aUnderType) { mOp1Type = Baf.getDescriptorTypeOf(aOp1Type); mOp2Type = Baf.getDescriptorTypeOf(aOp2Type); mUnderType = Baf.getDescriptorTypeOf(aUnderType); }
public void caseDup1_x2Inst(Dup1_x2Inst i) { Type u1 = i.getUnder1Type(); if (u1 instanceof DoubleType || u1 instanceof LongType) { remove_types = new Type[] { u1, i.getOp1Type() }; add_types = new Type[] { i.getOp1Type(), u1, i.getOp1Type() }; } else { remove_types = new Type[] { i.getUnder2Type(), u1, i.getOp1Type() }; add_types = new Type[] { i.getOp1Type(), i.getUnder2Type(), u1, i.getOp1Type() }; } }
public void caseDup2Inst(Dup2Inst i) { if (!(i.getOp1Type() instanceof DoubleType || i.getOp1Type() instanceof LongType)) { add_types = new Type[] { i.getOp2Type(), i.getOp1Type() }; remove_types = null; } else { add_types = new Type[] { i.getOp1Type() }; remove_types = null; } }
@Override public void caseRemInst(RemInst i) { emitOpTypeInst("rem", i); }
@Override public void casePopInst(PopInst i) { if (i.getWordCount() == 2) { emit("pop2"); } else { emit("pop"); } }
public soot.baf.DoubleWordType soot_baf_DoubleWordType() { if (instance_soot_baf_DoubleWordType == null) { synchronized (this) { if (instance_soot_baf_DoubleWordType == null) instance_soot_baf_DoubleWordType = new soot.baf.DoubleWordType(g); } } return instance_soot_baf_DoubleWordType; } protected void release_soot_baf_DoubleWordType() {
public soot.baf.Baf soot_baf_Baf() { if (instance_soot_baf_Baf == null) { synchronized (this) { if (instance_soot_baf_Baf == null) instance_soot_baf_Baf = new soot.baf.Baf(g); } } return instance_soot_baf_Baf; } protected void release_soot_baf_Baf() {
public soot.baf.WordType soot_baf_WordType() { if (instance_soot_baf_WordType == null) { synchronized (this) { if (instance_soot_baf_WordType == null) instance_soot_baf_WordType = new soot.baf.WordType(g); } } return instance_soot_baf_WordType; } protected void release_soot_baf_WordType() {
public void caseNewInst(NewInst i) { remove_types = null; add_types = new Type[] { i.getBaseType() }; }
public void apply(Switch sw) { ((InstSwitch) sw).caseIfCmpGtInst(this); } }
public void apply(Switch sw) { ((InstSwitch) sw).caseSpecialInvokeInst(this); } }
public void apply(Switch sw) { ((InstSwitch) sw).caseNegInst(this); } }
public void apply(Switch sw) { ((InstSwitch) sw).caseIfGtInst(this); } }
public void apply(Switch sw) { ((InstSwitch) sw).caseAndInst(this); } }
public BDup2_x2Inst(Type aOp1Type, Type aOp2Type, Type aUnder1Type, Type aUnder2Type) { mOp1Type = Baf.getDescriptorTypeOf(aOp1Type); mOp2Type = Baf.getDescriptorTypeOf(aOp2Type); mUnder1Type = Baf.getDescriptorTypeOf(aUnder1Type); mUnder2Type = Baf.getDescriptorTypeOf(aUnder2Type); }
@Override public void caseXorInst(XorInst i) { emitOpTypeInst("xor", i); }
public BDup1_x2Inst(Type aOpType, Type aUnder1Type, Type aUnder2Type) { mOpType = Baf.getDescriptorTypeOf(aOpType); mUnder1Type = Baf.getDescriptorTypeOf(aUnder1Type); mUnder2Type = Baf.getDescriptorTypeOf(aUnder2Type); }
@Override public void caseUshrInst(UshrInst i) { emitOpTypeInst("ushr", i); }