Puede intentar envolver los parámetros en una estructura; por ejemplo, si su función es int calc_my_sum(int x, int y) {return x+y;}
se puede cambiar de la siguiente manera (feo):
struct my_x_y {
int x, y;
my_x_y(): x(0), y(0) {} // a non-trivial constructor to make the type non-POD
};
int calc_my_sum(my_x_y x_and_y) {
// passing non-POD object by value forces to use the stack
return x_and_y.x + x_and_y.y;
}
Como alternativa, puede simplemente añadir 4 parámetros ficticias para agotar los registros, por lo demás parámetros utilizará pila:
struct force_stack_usage {
int dummy0, dummy1, dummy2, dummy3;
}
int calc_my_sum(force_stack_usage, int x, int y) {
return x + y;
}
¿Por qué es malo pasar los parámetros en los registros? –
No es algo malo. Solo quiero que los parámetros se pasen de esta manera porque estoy // emulando // una rutina de creación de hilos (y asignación de pilas). – cojocar
¿Qué arquitectura/ABI? – ephemient