FOLD_BINOP2_IMM (OP_IOR_IMM, |);
FOLD_BINOP2_IMM (OP_IXOR_IMM, ^);
FOLD_BINOP2_IMM (OP_ISUB_IMM, -);
- FOLD_BINOP2_IMM (OP_ISHL_IMM, <<);
- FOLD_BINOP2_IMM (OP_ISHR_IMM, >>);
+ FOLD_BINOPC2_IMM (OP_ISHL_IMM, <<, gint32);
+ FOLD_BINOPC2_IMM (OP_ISHR_IMM, >>, gint32);
FOLD_BINOPC2_IMM (OP_ISHR_UN_IMM, >>, guint32);
FOLD_BINOP2_IMM (OP_SHL_IMM, <<);
}
case OP_INEG:
if (arg1->opcode == OP_ICONST) {
/* INEG sets cflags on x86, and the LNEG decomposition depends on that */
- if ((ins->opcode == OP_INEG) && ins->next && (ins->next->opcode == OP_ADC_IMM))
+#if SIZEOF_REGISTER == 4
+ if (ins->opcode == OP_INEG)
return NULL;
+#endif
ALLOC_DEST (cfg, dest, ins);
switch (ins->opcode) {
FOLD_UNOP (OP_INEG,-);