<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: What do e_ and se_ mean/stand for? in S32 Design Studio</title>
    <link>https://community.nxp.com/t5/S32-Design-Studio/What-do-e-and-se-mean-stand-for/m-p/688384#M1499</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;original&amp;nbsp;&lt;A href="http://www.nxp.com/assets/documents/data/en/user-guides/BOOK_EUM.pdf"&gt;BookE&lt;/A&gt;&amp;nbsp;- 32 bit fixed instruction opcodes (stw, add, bl...)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;A class="link-bare" href="http://www.nxp.com/assets/documents/data/en/supporting-information/VLEPIM.pdf"&gt;VLE&lt;/A&gt;(Variable-Length Encoding) extension - mixture of 16 and 32 bit instruction opcodes where 16 bit instructions start with prefix "se_" and&amp;nbsp;32bit instructions with "e_"&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Which MPC derivative are you targeting?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;not all instructions in BookE could be easily transformed into VLE form by adding "e_" or "se_"&lt;/P&gt;&lt;P&gt;e.g.&amp;nbsp;ori instruction:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lis r11,0x4000&amp;nbsp;&lt;BR /&gt;ori r11,r11,0x0000&amp;nbsp;&lt;/P&gt;&lt;P&gt;=&amp;gt;&lt;/P&gt;&lt;P&gt;e_lis r11,0x4000&lt;/P&gt;&lt;P&gt;e_or2i r11,0x0000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;16 bit VLE "se_" instructions typically uses just a reduced set of registers + they often share the same source and destination register.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As far as I know this translation BookE -&amp;gt; VLE is not available in GCC (S32DS) but&amp;nbsp;you can use free Special edition version of&amp;nbsp;&lt;A href="http://www.nxp.com/lgfiles/devsuites/MCU/CW_MCU_v10.7_b160721_SE_Offline.exe"&gt;CodeWarrior for MCU 10.7&lt;/A&gt; to convert it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just create a new dummy project for any Qorivva MPC56xx device setup. Make sure the "Translate PPC Asm to VLE Asm (Zen)" option &amp;nbsp;is selected.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_5.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/23532iB41DA3BBF31DB8A9/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_5.png" alt="pastedImage_5.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Add your function e.g. as an asm function and disassembly the file:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/23455iAD1636921AA29725/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For better reading I'd suggest you to disable "Show Source Code" In project properties -&amp;gt; C/C++ Build -&amp;gt; Settings -&amp;gt;PowerPC Disassembler.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/23553i8B49DD7913A2E3EA/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_3.png" alt="pastedImage_3.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps.&lt;/P&gt;&lt;P&gt;Stan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 19 Jun 2017 13:40:58 GMT</pubDate>
    <dc:creator>stanish</dc:creator>
    <dc:date>2017-06-19T13:40:58Z</dc:date>
    <item>
      <title>What do e_ and se_ mean/stand for?</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/What-do-e-and-se-mean-stand-for/m-p/688383#M1498</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;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.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Jun 2017 14:08:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/What-do-e-and-se-mean-stand-for/m-p/688383#M1498</guid>
      <dc:creator>zacavins</dc:creator>
      <dc:date>2017-06-15T14:08:01Z</dc:date>
    </item>
    <item>
      <title>Re: What do e_ and se_ mean/stand for?</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/What-do-e-and-se-mean-stand-for/m-p/688384#M1499</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;original&amp;nbsp;&lt;A href="http://www.nxp.com/assets/documents/data/en/user-guides/BOOK_EUM.pdf"&gt;BookE&lt;/A&gt;&amp;nbsp;- 32 bit fixed instruction opcodes (stw, add, bl...)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;A class="link-bare" href="http://www.nxp.com/assets/documents/data/en/supporting-information/VLEPIM.pdf"&gt;VLE&lt;/A&gt;(Variable-Length Encoding) extension - mixture of 16 and 32 bit instruction opcodes where 16 bit instructions start with prefix "se_" and&amp;nbsp;32bit instructions with "e_"&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Which MPC derivative are you targeting?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;not all instructions in BookE could be easily transformed into VLE form by adding "e_" or "se_"&lt;/P&gt;&lt;P&gt;e.g.&amp;nbsp;ori instruction:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lis r11,0x4000&amp;nbsp;&lt;BR /&gt;ori r11,r11,0x0000&amp;nbsp;&lt;/P&gt;&lt;P&gt;=&amp;gt;&lt;/P&gt;&lt;P&gt;e_lis r11,0x4000&lt;/P&gt;&lt;P&gt;e_or2i r11,0x0000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;16 bit VLE "se_" instructions typically uses just a reduced set of registers + they often share the same source and destination register.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As far as I know this translation BookE -&amp;gt; VLE is not available in GCC (S32DS) but&amp;nbsp;you can use free Special edition version of&amp;nbsp;&lt;A href="http://www.nxp.com/lgfiles/devsuites/MCU/CW_MCU_v10.7_b160721_SE_Offline.exe"&gt;CodeWarrior for MCU 10.7&lt;/A&gt; to convert it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just create a new dummy project for any Qorivva MPC56xx device setup. Make sure the "Translate PPC Asm to VLE Asm (Zen)" option &amp;nbsp;is selected.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_5.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/23532iB41DA3BBF31DB8A9/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_5.png" alt="pastedImage_5.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Add your function e.g. as an asm function and disassembly the file:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/23455iAD1636921AA29725/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For better reading I'd suggest you to disable "Show Source Code" In project properties -&amp;gt; C/C++ Build -&amp;gt; Settings -&amp;gt;PowerPC Disassembler.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/23553i8B49DD7913A2E3EA/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_3.png" alt="pastedImage_3.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps.&lt;/P&gt;&lt;P&gt;Stan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Jun 2017 13:40:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/What-do-e-and-se-mean-stand-for/m-p/688384#M1499</guid>
      <dc:creator>stanish</dc:creator>
      <dc:date>2017-06-19T13:40:58Z</dc:date>
    </item>
    <item>
      <title>Re: What do e_ and se_ mean/stand for?</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/What-do-e-and-se-mean-stand-for/m-p/1202714#M7102</link>
      <description>&lt;P&gt;Thank you for this explanation and resources. So I guess se_ will be shorthand for `short enhanced` and e_ is `enhanced`.&lt;/P&gt;</description>
      <pubDate>Tue, 22 Dec 2020 02:54:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/What-do-e-and-se-mean-stand-for/m-p/1202714#M7102</guid>
      <dc:creator>nxf65158</dc:creator>
      <dc:date>2020-12-22T02:54:22Z</dc:date>
    </item>
  </channel>
</rss>

