8.6.5 Restrictions on PIC/PID facility

(1)

Position-independent code or data operates at addresses different from those at linkage. Therefore, the addresses of position-independent code or data cannot be specified as initializers of static variables.

(2)

The GP-relative or EP-relative sections can be used for both position-independent data and position-dependent data. However, since the GP and EP registers are shared, if the GP or EP register value is changed to use the PID facility, the reference addresses of position-dependent data are also changed. It is recommended to unify in the entire program whether the GP or EP register is each used for position-independent data or position-dependent data.

(3)

The standard library does not support the PIC, PIROD, and PID facilities. The facilities should be positioned and used in the common part.

(4)

Since the section name is changed when the PIC or PID facility is used, the -start option specification of the linker also needs to be changed.

(5)

The standard startup routine cannot be used when the PIC or PID facility is used. Create the startup routine with reference to "8.6.6 Startup routine".