BugFix: creation of Div/Mod nodes
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Fri, 21 Apr 2006 15:55:43 +0000 (15:55 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Fri, 21 Apr 2006 15:55:43 +0000 (15:55 +0000)
ir/be/ia32/ia32_transform.c

index 7ee6ca6..7e571d1 100644 (file)
@@ -901,10 +901,12 @@ static ir_node *generate_DivMod(ia32_transform_env_t *env, ir_node *dividend, ir
                proj = get_edge_src_irn(get_irn_out_edge_first(irn));
                assert(is_Proj(proj) && "non-Proj to Div/Mod node");
 
-               if (get_Proj_proj(proj) == pn_DivMod_res_div) {
+               if (get_irn_op(irn) == op_Div) {
+                       set_Proj_proj(proj, pn_DivMod_res_div);
                        in_keep[0] = new_rd_Proj(dbg, irg, block, res, mode_Is, pn_DivMod_res_mod);
                }
                else {
+                       set_Proj_proj(proj, pn_DivMod_res_mod);
                        in_keep[0] = new_rd_Proj(dbg, irg, block, res, mode_Is, pn_DivMod_res_div);
                }