Commit 0eb058c4 authored by Matthias Braun's avatar Matthias Braun
Browse files

fix alloca mapper

[r19884]
parent ba9d3684
...@@ -210,11 +210,15 @@ int i_mapper_alloca(ir_node *call, void *ctx) { ...@@ -210,11 +210,15 @@ int i_mapper_alloca(ir_node *call, void *ctx) {
dbg_info *dbg = get_irn_dbg_info(call); dbg_info *dbg = get_irn_dbg_info(call);
(void) ctx; (void) ctx;
if (mode_is_signed(get_irn_mode(op))) {
op = new_rd_Conv(dbg, current_ir_graph, block, op, mode_Iu);
}
irn = new_rd_Alloc(dbg, current_ir_graph, block, mem, op, firm_unknown_type, stack_alloc); irn = new_rd_Alloc(dbg, current_ir_graph, block, mem, op, firm_unknown_type, stack_alloc);
mem = new_Proj(irn, mode_M, pn_Alloc_M); mem = new_rd_Proj(dbg, current_ir_graph, block, irn, mode_M, pn_Alloc_M);
no_exc = new_Proj(irn, mode_X, pn_Alloc_X_regular); no_exc = new_rd_Proj(dbg, current_ir_graph, block, irn, mode_X, pn_Alloc_X_regular);
exc = new_Proj(irn, mode_X, pn_Alloc_X_except); exc = new_rd_Proj(dbg, current_ir_graph, block, irn, mode_X, pn_Alloc_X_except);
irn = new_Proj(irn, get_modeP_data(), pn_Alloc_res); irn = new_rd_Proj(dbg, current_ir_graph, block, irn, get_modeP_data(), pn_Alloc_res);
DBG_OPT_ALGSIM0(call, irn, FS_OPT_RTS_ALLOCA); DBG_OPT_ALGSIM0(call, irn, FS_OPT_RTS_ALLOCA);
replace_call(irn, call, mem, no_exc, exc); replace_call(irn, call, mem, no_exc, exc);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment