11.1. Procedure Size
There is no well-defined limit for the size of a procedure on the
However, the compiler almost always successfully
compiles procedures under 128K bytes in length.
The compiler may handle
procedures larger than 128K bytes, depending on the code.
Procedures longer than approximately 128K
bytes are not guaranteed to work, and
such procedures may compile correctly on one machine and not on another.
11.2. Data Types
A storage unit on the IA-64 is one byte (8 bits).
MAINSAIL data types on the IA-64 are
represented as follows:
Data type Representation BOOLEAN 1 doubleword (4 bytes) INTEGER 1 doubleword (4 bytes) LONG INTEGER 2 doublewords (8 bytes) REAL IEEE single precision floating point
(4 bytes) LONG REAL IEEE double precision floating point
(8 bytes) BITS 1 doubleword (4 bytes) LONG BITS 2 doublewords (8 bytes) STRING 4 doublewords (16 bytes): first 8
bytes (low address) are length, second
8 bytes (high address) are CHARADR of
first character ADDRESS 2 doublewords (8 bytes) CHARADR 2 doublewords (8 bytes) POINTER 2 doublewords (8 bytes)
STRING variables have both the length and
CHARADR component equal to
Zero for the STRING Zero (the empty STRING).
11.3. Miscellaneous Information
The representation for BOOLEAN FALSE is all bits clear, and the
standard for BOOLEAN TRUE is low-order bit set, all other bits
clear. However, in forms such as IF booleanVariable THEN ...,
booleanVariable is considered to be TRUE if any bits are set.
STRING variables have both the length and CHARADR component equal to Zero for the STRING Zero (the empty STRING).