(void)i;
(void)j;
-#if 1
+ /* we can't handle psis with 64bit compares yet */
if(is_Proj(sel)) {
ir_node *pred = get_Proj_pred(sel);
if(is_Cmp(pred)) {
ir_node *left = get_Cmp_left(pred);
ir_mode *cmp_mode = get_irn_mode(left);
- if(mode_is_float(cmp_mode))
+ if(!mode_is_float(cmp_mode) && get_mode_size_bits(cmp_mode) > 32)
return 0;
}
}
-#endif
/* check the Phi nodes */
for (phi = phi_list; phi; phi = get_irn_link(phi)) {
if(!is_Const_0(cmp_right))
return NULL;
- if(is_And(cmp_left) && can_fold_test_and(node)) {
+ if(is_And(cmp_left) && get_irn_n_edges(cmp_left) == 1 &&
+ can_fold_test_and(node)) {
ir_node *and_left = get_And_left(cmp_left);
ir_node *and_right = get_And_right(cmp_left);
case 'y': /* we don't support mmx registers yet */
case 'Z': /* not available in 32 bit mode */
case 'e': /* not available in 32 bit mode */
- assert(0 && "asm constraint not supported");
+ panic("unsupported asm constraint '%c' found in (%+F)",
+ *c, current_ir_graph);
break;
default:
- assert(0 && "unknown asm constraint found");
+ panic("unknown asm constraint '%c' found in (%+F)", *c,
+ current_ir_graph);
break;
}
++c;