Bail out more information on failed assertion

This commit is contained in:
Tobias Blaschke 2014-03-06 18:14:54 +01:00 committed by Juergen Graf
parent dc2522f937
commit 3751366295
2 changed files with 13 additions and 4 deletions

View File

@ -221,4 +221,8 @@ public class BinaryLiteralOperation extends Instruction {
}
}
@Override
public String toString() {
return String.format("%04dpc: v%d = v%d %s v%d", this.pc, this.destination, this.oper1, this.op.toString(), this.oper2.value);
}
}

View File

@ -603,10 +603,15 @@ public class DexSSABuilder extends AbstractIntRegisterMachine {
workingState.setLocal(dest, result);
// workingState.push(result);
// boolean isFloat = instruction.getType().equals(TYPE_double) || instruction.getType().equals(TYPE_float);
if (instruction.isSub())
emitInstruction(insts.BinaryOpInstruction(getCurrentInstructionIndex(), instruction.getOperator(), false, instruction.isUnsigned(), result, val2, val1, !instruction.isFloat()));
else
emitInstruction(insts.BinaryOpInstruction(getCurrentInstructionIndex(), instruction.getOperator(), false, instruction.isUnsigned(), result, val1, val2, !instruction.isFloat()));
try {
if (instruction.isSub())
emitInstruction(insts.BinaryOpInstruction(getCurrentInstructionIndex(), instruction.getOperator(), false, instruction.isUnsigned(), result, val2, val1, !instruction.isFloat()));
else
emitInstruction(insts.BinaryOpInstruction(getCurrentInstructionIndex(), instruction.getOperator(), false, instruction.isUnsigned(), result, val1, val2, !instruction.isFloat()));
} catch (AssertionError e) {
System.err.println("When visiting Instuction " + instruction);
throw e;
}
}
/**