ILP32 and LP64 addressing capabilities

Table 1 shows the differences in addressing capabilities that are available in each environment. 31-bit refers to the addressing mode, or AMODE. In z/OS XL C/C++, pointer sizes in this mode are always 4 bytes. In AMODE 31, 31 bits of the pointer are used to form the address, which is defined by the term "31-bit addressing mode". Occasionally, we also use the term "32-bit mode". Strictly speaking, 31-bit is an architectural characteristic referring to the addressing capability, while 32-bit is a programming language aspect referring to the data model. The latter is also referred to as ILP32 (int-long-pointer 32). When there is no ambiguity, we use the term "32-bit mode".

Table 1. Comparison of ILP32 and LP64 addressing capabilities
ILP32 (32-bit environment) LP64 (64-bit environment)
2 GB of address space 1 million TB of address space
31-bit execution mode 1  64-bit execution mode