int ia32_get_n_regparam_class(int n, ir_mode **modes, int *n_int, int *n_float) {
int i, finished = 0;
+ *n_int = 0;
+ *n_float = 0;
+
for (i = 0; i < n && !finished; i++) {
- if (mode_is_int(modes[i])) {
+ if (mode_is_int(modes[i]) || mode_is_reference(modes[i])) {
*n_int = *n_int + 1;
}
else if (mode_is_float(modes[i])) {
return 1;
}
else if (is_ia32_DivMod(pred)) {
- if (nr == pn_DivMod_res_div || pn_Div_res)
+ if (nr == pn_DivMod_res_div)
return 0;
- if (nr == pn_DivMod_res_mod || pn_Mod_res)
+ if (nr == pn_DivMod_res_mod)
return 1;
+ assert(0 && "unsupported DivMod");
}
else if (is_ia32_fDiv(pred)) {
if (nr == pn_Quot_res)