[fpc-devel] missing descriptions for few compiler magic functions
Jonas Maebe
jonas.maebe at elis.ugent.be
Mon Jul 20 18:12:39 CEST 2009
On 20 Jul 2009, at 17:12, Paul Ishenin wrote:
> I have found that next functions are not described here: http://freepascal.org/docs-html/rtl/system/index.html
Several of them are 2.3.1, so it's normal that they are not yet in the
documentation.
> The functions are:
> - BitSizeOf
It's similar to sizeof, except that it returns the size in bits of the
type when it is used in a bitpacked record or array.
> - get_frame
It returns a pointer to the current routine's stack frame, and at the
same time makes sure that the compiler does not optimize the stack
frame of the current routine away.
> - Pack
> - ReadStr
> - Unpack
> - WriteStr
These come straight from ISO (Standard or Extended) Pascal and behave
exactly as described in the standards:
* Pack, Unpack: http://www.moorecad.com/standardpascal/iso7185.html#6.6.5.4%20Transfer%20procedures
* ReadStr, WriteStr: section 6.7.5.5 of http://www.moorecad.com/standardpascal/iso10206.pdf
(p. 86 of the pdf)
> - Unaligned
Make the compiler assume that the argument is an unaligned memory
location (it takes a "var" parameter, i.e., not a pointer but what the
pointer points to), and hence that the compiler should use load
instructions that are safe in such a situation on CPUs that require
this (such as ARM and SPARC).
Jonas
More information about the fpc-devel
mailing list