- sign = new_rd_ia32_l_Shrs(dbg, irg, block, a_h, new_Const_long(h_res_mode, 31), h_res_mode);
- sub_l = new_rd_ia32_l_Eor(dbg, irg, block, a_l, sign, l_res_mode);
- sub_h = new_rd_ia32_l_Eor(dbg, irg, block, a_h, sign, h_res_mode);
+ sign = new_rd_ia32_l_Sar(dbg, irg, block, a_h, new_Const_long(h_res_mode, 31), h_res_mode);
+ sub_l = new_rd_ia32_l_Xor(dbg, irg, block, a_l, sign, l_res_mode);
+ sub_h = new_rd_ia32_l_Xor(dbg, irg, block, a_h, sign, h_res_mode);