Am 11.12.2017 um 21:58 schrieb Christo:
> I'm trying to write an assembler function to read a string from program 
> memory using LPM and
> return a shortstring result.  Consider the following prototype function:
> 
> function readProgmemStr(constref s: shortstring): shortstring;
> 
> It appears from the generated code as if the function result location is 
> assigned before the
> function is called, with the reference to the function result passed as first 
> parameter (in
> R24:R25) and the reference to s passed as the second parameter (in R22:R23). 
> Is this indeed the
> current parameter handling for shortstring function result type?

Yes.

> 
> If so it probably warrants a mention on the AVR wiki page.  Are there any 
> other data types that
> deviates from the GCC AVR calling convention in this way?

Where do the GCC AVR calling say something about how to pass shortstrings? FPC 
always use a first
"hidden" parameter to pass e.g. pointers to storage space for data types not 
being returned in
registers.

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

Reply via email to