CHAPTER 4 BCU
Preliminary User’s Manual A14874EJ3V0UM
89
However, it is unnecessary to specify the above optimization suppression options when not using “cast”
or “mask/shift” access
Note
.
Note
The condition is that patterns causing the following optimization are not used. It is extremely
difficult to perform a perfect check on the user side in a state such as where all the patterns
(especially in the model-based optimization section) are mixed together. The above optimization
suppression options are therefore recommended.
<1> For global optimization section
•
1 bit set using bit or
int i;
i ^= 1;
•
1 bit clear using bit and
i &= ~1;
•
1 bit not using bit xor
i ^= 1;
•
1 bit test using bit and
if(i & 1);
<2> For model-based optimization section
Usage whereby identical variables are accessed in different sizes
•
Cast
•
Mask
•
Shift
Example
int i, *ip;
char c;
:
:
c=*((char*)ip);
:
:
c = 0xff & i;
:
:
i = (i << 24) >> 24;
(b) Assembly language restrictions
Area-securing dummy instructions that are not byte size (.hword, .word, .float, .shword) cannot be used for
variables configured in the big endian space.