Lorenzo Micheletto

What's the effect of .optimize_iasm on/off, .iasm_sideeffects on/off, .iasm_reg2regsetcopyflag and .iasm_use__LSR16_STOL_IASM02 ?

Discussion created by Lorenzo Micheletto on Mar 7, 2019
Latest reply on Mar 11, 2019 by Lorenzo Micheletto

Hello all,

Looking into source files part of the 56800E runtimes of codewarrior 11, in file

C:\Freescale\CW MCU v11.0\MCU\M56800E Support\msl\MSL_C\DSP_56800E\inc\intrinsics_56800E.h 

I found usage of the following inline assembler directives:

.optimize_iasm

.iasm_sideeffects

.iasm_reg2regsetcopyflag

.iasm_use__LSR16_STOL_IASM02 

Searching in the documentation I've found only a reference to .optimize_iasm in 

"CodeWarrior Development Studio for Microcontrollers V11.x Digital Signal Controller Build Tools Reference Manual"

saying:

To optimize a block of inline assembly source code, use the inline assembly
directive .optimize_iasm on before the code block. Then use the directive .optimize_iasm
off at the end of the block. (Omitting .optimize_iasm off means that optimizations
continue to the end of the function.)

But it's not clear what kind of optimizations are performed.

The other directives have no documentation at all.

 

Where can I find more information about the effect of those directives ?

Are there other inline assembler directives that may be useful to developers ?

 

Thanks in advance for your help,

Lorenzo

Outcomes