Hello all,
When writing my custom backend, I hit problems when more processor
registers are needed than there
are available.
In this case,
- it works without the optimizer (Obviously . Without the optimizer,
the compiler puts all on the stack.)
- it crashes with the optimizer. It crashes in the reload step, seems
to me it fails to put some variables in memory.
This seems to be associated with my implementation of
preferred_reload_class and secondary_reload.
This is from the log:
/blueproc_secondary_reload , return NO_REGS, rclass = BASE_REGS, mode =
SI, type 1 x://
//(reg/v:SI 333 [ ndigits ])//
//
//blueproc_preferred_reload_class, return BASE_REGS, rclass = BASE_REGS,
mode = SI, x://
//(reg/v:SI 333 [ ndigits ])//
//
//blueproc_preferred_reload_class, return BASE_REGS, rclass = BASE_REGS,
mode = SI, x://
//(reg/v:SI 333 [ ndigits ])//
/
Now, something is obviously wrong. Secondary reload returns /no_regs/,
meaning it should go straigth to memory.
But, question, what should I do with the /sri->code/ and /sri->cost/
arguments ??.
Best Regards,
Henri.