On 10/01/18 17:06, Martok wrote:

Afaik there are only two limitations:
* routines containing assembly blocks (including pure assembly routines)
cannot be inlined> * regular procedures that contain assembly blocks will never 
use regvars
Somehow I have a feeling that the fix for one would also fix the other...

They are orthogonal issues.

I'd add the manual RIP addressing that was mentioned on the bugtracker recently

That's not a limitation. Not supporting absolute addressing on x86-64 would be a limitation.

(OT: is -Cg supposed to work on platforms where it is not set by default?).

I think it does, although I don't think it does anything on Win64 (as its code is already position-independent by default).

For the original issue, since manually using assembler blocks makes things
complicated, is there a way to "strongly suggest" to the compiler that a
variable should become a regvar if the entire routine is pure Pascal? Something
like the (purely decorative) {register} comments in
/packages/pasjpeg/src/jdcolor.pas?

No, and I don't think it would be a good idea to spend time on complicating the compiler with such functionality. Over time, such hints become more of a burden than a gain (I believe all modern C compilers completely ignore such hints).


Jonas

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

Reply via email to