What do e_ and se_ mean/stand for?

Showing results for 
Show  only  | Search instead for 
Did you mean: 

What do e_ and se_ mean/stand for?

Contributor I

What is the difference between instructions like addi and e_addi OR lwz and se_lwz? I am using previously developed assembly/C code and trying to make a project and build it using S32 design studio. I get errors on instructions like addi, and if I change it to e_addi, it will show no error. I am unsure what the e_ is for. Are there compiler options to change? Project settings? Does anyone know if there is any documentation for this? I have been unsuccessful at finding anything.

Labels (2)
Tags (2)
0 Kudos
2 Replies

NXP Employee
NXP Employee

Thank you for this explanation and resources. So I guess se_ will be shorthand for `short enhanced` and e_ is `enhanced`.

0 Kudos

NXP Employee
NXP Employee


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.