+ fprintf (file, " %s ;P_O cst_dbl ", fltstr);
+ }
+ */
+ fprintf (file, "%lf", get_double (x));
+ break;
+ case CONST_INT:
+ if (kode == 'J')
+ fprintf (file, "%d", -INTVAL (x));
+ else if (INTVAL (x) > 0x7FFF)
+ fprintf (file, "%d ; range correction (val>0x7FFF) applied",
+ INTVAL (x) - 0x10000);
+ else
+ fprintf (file, "%d", INTVAL (x));
+ break;
+ case CODE_LABEL:
+ fprintf (file, "L%d", XINT (x, 3));
+ break;
+ case CALL:
+ fprintf (file, "CALL nargs=%d, func is either '%s' or '%s'",
+ XEXP (x, 1), XSTR (XEXP (XEXP (x, 0), 1), 0), XSTR (XEXP (x, 0), 1));
+ break;
+ case PLUS:
+ {
+ rtx op0 = XEXP (x, 0), op1 = XEXP (x, 1);
+ int op0code = GET_CODE (op0), op1code = GET_CODE (op1);
+ if (op1code == CONST_INT)
+ switch (op0code)
+ {
+ case REG:
+ fprintf (file, "%d,r%d ; p_o_PLUS for REG and CONST",
+ INTVAL (op1), REGNO (op0));
+ break;
+ case SYMBOL_REF:
+ fprintf (file, "%d+%s", INTVAL (op1), XSTR (op0, 0));
+ break;
+ case MEM:
+ fprintf (file, "%d,[mem:", INTVAL (op1));
+ output_address (XEXP (op0, 0));
+ fprintf (file, "] ;P_O plus");
+ break;
+ default:
+ fprintf (file, "p_o_PLUS UFO, code=%d, with CONST=%d",
+ (int) op0code, INTVAL (op1));
+ }
+ else if (op1code == SYMBOL_REF && op0code == REG)
+ fprintf (file, "%s,r%d ; P_O: (plus reg sym)",
+ XSTR (op1, 0), REGNO (op0));