#include "pmap.h"
#include "array_t.h"
#include "iropt_dbg.h"
+#include "error.h"
/** Walker environment. */
typedef struct _walker_env {
(void) ctx;
if (mode_is_signed(get_irn_mode(op))) {
- op = new_rd_Conv(dbg, current_ir_graph, block, op, mode_Iu);
+ ir_mode *mode = get_irn_mode(op);
+ mode = find_unsigned_mode(mode);
+ if (mode == NULL) {
+ panic("Cannot find unsigned mode for %M", mode);
+ }
+ op = new_rd_Conv(dbg, current_ir_graph, block, op, mode);
}
irn = new_rd_Alloc(dbg, current_ir_graph, block, mem, op, firm_unknown_type, stack_alloc);
mode = get_type_mode(tp);
/* FIXME: This is too restrict, as the type char might be more the 8bits */
- if (!mode_is_int(mode) || get_mode_size_bits(mode) != get_mode_size_bits(mode_Bs))
+ if (!mode_is_int(mode) || get_mode_size_bits(mode) != 8)
return NULL;
n = get_compound_ent_n_values(ent);
mode = get_type_mode(tp);
/* FIXME: This is too restrict, as the type char might be more the 8bits */
- if (!mode_is_int(mode) || get_mode_size_bits(mode) != get_mode_size_bits(mode_Bs))
+ if (!mode_is_int(mode) || get_mode_size_bits(mode) != 8)
return NULL;
tp = get_entity_type(right);
mode = get_type_mode(tp);
/* FIXME: This is too restrict, as the type char might be more the 8bits */
- if (!mode_is_int(mode) || get_mode_size_bits(mode) != get_mode_size_bits(mode_Bs))
+ if (!mode_is_int(mode) || get_mode_size_bits(mode) != 8)
return NULL;
n = get_compound_ent_n_values(left);
mode = get_type_mode(tp);
/* FIXME: This is too restrict, as the type char might be more the 8bits */
- if (!mode_is_int(mode) || get_mode_size_bits(mode) != get_mode_size_bits(mode_Bs))
+ if (!mode_is_int(mode) || get_mode_size_bits(mode) != 8)
return 0;
n = get_compound_ent_n_values(ent);