-ppc_asm_to_vle

Converts regular Power Architecture assembler mnemonics to equivalent VLE (Variable Length Encoded) assembler mnemonics in the inline assembler and standalone assembler.

Syntax
  -ppc_asm_to_vle
  
Remarks

C/C++ source is input to compiler inline assembler where as assembly source is input to standalone assembler.

While translating assembly statements in C or C++ or assembly source code, the compiler inline assembler or standalone assembler will replace each regular Power Architecture assembler mnemonic with its matching VLE instruction if one exists. The mnemonics for VLE (Variable Length Encoding) instructions begin with se_ or e_. The compiler's inline assembler recognizes these mnemonics when the compiler is configured to generate VLE object code. The same is with assembler. If an equivalent VLE instruction does not exist for an UISA instruction then it might generate multiple VLE instructions for that operation.

Assembler changes the section .text to .text_vle. For user defined sections, LCF needs modification.

Example

Consider test.s

.section .mytext
tmp:
do_loop00:
            B exit0
            Add r0,r0,r1
.text
exit0:   
           blr

Assemble with option -ppc_asm_to_vle

In LCF

      .text_vle (VLECODE) : {
             *(.text)
             *(.text_vle)
              (.mytext)
      }


Note: Assembler does not emit a 16-bit VLE instruction for branch instructions, if the label definition does not exist at that point.