Hello,
There are basically 2 kinds of instruction sets for MPC5xxx - BookE and VLE. Some derivatives(cores) support both while the others just one of them (e.g MPC5554 is BookE only, MPC560x derivatives are VLE only)
- original BookE - 32 bit fixed instruction opcodes (stw, add, bl...)
- VLE(Variable-Length Encoding) extension - mixture of 16 and 32 bit instruction opcodes where 16 bit instructions start with prefix "se_" and 32bit instructions with "e_"
Which MPC derivative are you targeting?
not all instructions in BookE could be easily transformed into VLE form by adding "e_" or "se_"
e.g. ori instruction:
lis r11,0x4000
ori r11,r11,0x0000
=>
e_lis r11,0x4000
e_or2i r11,0x0000
16 bit VLE "se_" instructions typically uses just a reduced set of registers + they often share the same source and destination register.
As far as I know this translation BookE -> VLE is not available in GCC (S32DS) but you can use free Special edition version of CodeWarrior for MCU 10.7 to convert it.
Just create a new dummy project for any Qorivva MPC56xx device setup. Make sure the "Translate PPC Asm to VLE Asm (Zen)" option is selected.

Add your function e.g. as an asm function and disassembly the file:

For better reading I'd suggest you to disable "Show Source Code" In project properties -> C/C++ Build -> Settings ->PowerPC Disassembler.

Hope it helps.
Stan