On 20/12/18 18:09, Martok wrote:
Parameters are difficult because they either need something like extra temps *in
memory* (like cdecl) or some extra registers need to be pushed/popped, which
brings us back to the register allocator issue.

There's also the issue that to fully support inlining, you have to be able to store the entire procedure body in the ppu file. And there is no support to do this for assembler code at this time (the skeleton exists, but that's it).

Regarding the used registers and parameters, I would still forbid inlining for pure assembler routines, and only allow it for regular procedures with assembler blocks. That way the compiler would have full control over where the parameters and return value are stored etc. Doing it for pure assembler routines creates a whole lot of extra problems with potentially worse code quality in the end, because the compiler has much less freedom.


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to