private void pushByDoubleMath(int seen, Item it, Item it2) { Item result; @SpecialKind int specialKind = Item.FLOAT_MATH; if ((it.getConstant() instanceof Double) && it2.getConstant() instanceof Double) { if (seen == Const.DADD) { result = new Item("D", Double.valueOf(constantToDouble(it2) + constantToDouble(it))); } else if (seen == Const.DSUB) { result = new Item("D", Double.valueOf(constantToDouble(it2) - constantToDouble(it))); } else if (seen == Const.DMUL) { result = new Item("D", Double.valueOf(constantToDouble(it2) * constantToDouble(it))); } else if (seen == Const.DDIV) { result = new Item("D", Double.valueOf(constantToDouble(it2) / constantToDouble(it))); } else if (seen == Const.DREM) { result = new Item("D", Double.valueOf(constantToDouble(it2) % constantToDouble(it))); } else { result = new Item("D"); // ? } } else { result = new Item("D"); if (seen == Const.DDIV) { specialKind = Item.NASTY_FLOAT_MATH; } } result.setSpecialKind(specialKind); push(result); }
private void handleDcmp(int opcode) { Item it = pop(); Item it2 = pop(); if ((it.getConstant() != null) && it2.getConstant() != null) { double d = constantToDouble(it); double d2 = constantToDouble(it2); if (Double.isNaN(d) || Double.isNaN(d2)) { if (opcode == Const.DCMPG) { push(new Item("I", Integer.valueOf(1))); } else { push(new Item("I", Integer.valueOf(-1))); } } if (d2 < d) { push(new Item("I", Integer.valueOf(-1))); } else if (d2 > d) { push(new Item("I", Integer.valueOf(1))); } else { push(new Item("I", Integer.valueOf(0))); } } else { push(new Item("I")); } }
it = pop(); if (it.getConstant() instanceof Double) { push(new Item("D", Double.valueOf(-constantToDouble(it)))); } else { push(new Item("D")); it = pop(); if (it.getConstant() != null) { push(new Item("D", Double.valueOf(constantToDouble(it)))); } else { push(new Item("D"));
private void pushByDoubleMath(int seen, Item it, Item it2) { Item result; @SpecialKind int specialKind = Item.FLOAT_MATH; if ((it.getConstant() instanceof Double) && it2.getConstant() instanceof Double) { if (seen == DADD) { result = new Item("D", Double.valueOf(constantToDouble(it2) + constantToDouble(it))); } else if (seen == DSUB) { result = new Item("D", Double.valueOf(constantToDouble(it2) - constantToDouble(it))); } else if (seen == DMUL) { result = new Item("D", Double.valueOf(constantToDouble(it2) * constantToDouble(it))); } else if (seen == DDIV) { result = new Item("D", Double.valueOf(constantToDouble(it2) / constantToDouble(it))); } else if (seen == DREM) { result = new Item("D", Double.valueOf(constantToDouble(it2) % constantToDouble(it))); } else { result = new Item("D"); // ? } } else { result = new Item("D"); if (seen == DDIV) { specialKind = Item.NASTY_FLOAT_MATH; } } result.setSpecialKind(specialKind); push(result); }
private void handleDcmp(int opcode) { Item it = pop(); Item it2 = pop(); if ((it.getConstant() != null) && it2.getConstant() != null) { double d = constantToDouble(it); double d2 = constantToDouble(it2); if (Double.isNaN(d) || Double.isNaN(d2)) { if (opcode == DCMPG) { push(new Item("I", Integer.valueOf(1))); } else { push(new Item("I", Integer.valueOf(-1))); } } if (d2 < d) { push(new Item("I", Integer.valueOf(-1))); } else if (d2 > d) { push(new Item("I", Integer.valueOf(1))); } else { push(new Item("I", Integer.valueOf(0))); } } else { push(new Item("I")); } }
it = pop(); if (it.getConstant() instanceof Double) { push(new Item("D", Double.valueOf(-constantToDouble(it)))); } else { push(new Item("D")); it = pop(); if (it.getConstant() != null) { push(new Item("D", Double.valueOf(constantToDouble(it)))); } else { push(new Item("D"));