Implement ``force_l32`` Target-Specific Attribute
The Xtensa backend gained a ``force_l32`` attribute to enable sub-word reads from instruction memory in other languages besides C.
The Xtensa backend gained a force_l32 target-specific attribute. This attribute is similar to the __force_l32 named address space, but it is usable in languages other than C. It allows sub-word reading from instruction memory regions when the memory regions for placing machine instructions are not configured as “unified.”
In Details
This adds the Xtensa-specific force_l32 attribute, which is related to the __force_l32 named address space. These features are used when the memory regions for placing machine instructions are not configured as "unified". The attribute largely duplicates the existing functionality of the named address space, but makes it accessible from other languages besides C.
For Context
Some architectures, like Xtensa, have separate address spaces for instructions and data. Normally, code loads data (e.g. from a string literal) using data-access instructions. However, if the memory regions are not configured as "unified", special instructions are needed to load data from instruction memory. The force_l32 attribute instructs the compiler to use these special instructions.