-instalign4


< Compile Options / Object Options >

[Format]

-instalign4[={loop|inmostloop}]

[Description]

-

This option aligns instructions at branch destinations.

-

When the instalign4 option is specified, the instruction at the location address is aligned to the 4-byte boundary.

-

Instruction alignment is performed only when the instruction at the specified location exceeds the address which is a multiple of the alignment value (4)*1.

-

The following three types of branch destination can be selected by specifying the suboptions of -instalign4*2.

-

No specification: Head of function and case and default labels of switch statement
inmostloop: Head of each inmost loop, head of function, and case and default labels of switch statement
loop: Head of each loop, head of function, and case and default labels of switch statement

-

When this option is selected, the alignment value of the program section is changed from 1 to 4 (for instalign4) or 8 (for instalign8).

-

This option aims to efficiently operate the instruction queues of the RX CPU and improve the speed of program execution by aligning the addresses of branch destination instructions.
This option has specifications targeting the following usage.

-

instalign4: When attempting to improve the speed of CPUs with a 32-bit instruction queue (mainly RX200 Series)

Notes 1.

This is when the instruction size is equal to or smaller than the alignment value. If the instruction size is greater than the alignment value, alignment is performed only when the number of exceeding points is two or more.

Notes 2.

Alignment is adjusted only for the branch destinations listed above; alignment of the other destinations is not adjusted. For example, when loop is selected, alignment of the head of a loop is adjusted but alignment is not adjusted at the branch destination of an if statement that is used in the loop but does not generate a loop.

-

If an object module file or a standard library that has been generated through compilation without using this option is specified for linkage, the warning W0561322 will be output at linkage but program execution will have no problem.