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
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to