EmbeddedRelated.com
Forums
The 2026 Embedded Online Conference

ARM BE8 support

Started by Unknown May 20, 2016
Hi All, 

Was wondering why arm introduce BE8 format for bigendian mode . 

I’m sure ,they have some parameters ,why I need BE8 over BE32 . 

Any thing would like to share thoughts on this  ?. 

Thank you 
~Umesh
On 5/20/2016 6:13 AM, umesh.kalappa0@gmail.com wrote:
> Hi All, > > Was wondering why arm introduce BE8 format for bigendian mode . > > I’m sure ,they have some parameters ,why I need BE8 over BE32 . > > Any thing would like to share thoughts on this ?.
I'm not sure I understand your question -- or the motivation behind it. It's not a question of "need" as much as it is a question of whether or not the particular ARM core you select will support BE8 or BE32. E.g., v7 cores are not BE32 capable; v4 cores are not BE8 capable (but all are LE capable)
On Sunday, 22 May 2016 06:59:15 UTC+5:30, Don Y  wrote:
> On 5/20/2016 6:13 AM, umesh.kalappa0@gmail.com wrote: > > Hi All, > > > > Was wondering why arm introduce BE8 format for bigendian mode . > > > > I’m sure ,they have some parameters ,why I need BE8 over BE32 . > > > > Any thing would like to share thoughts on this ?. > > I'm not sure I understand your question -- or the motivation > behind it. It's not a question of "need" as much as it is > a question of whether or not the particular ARM core you > select will support BE8 or BE32. > > E.g., v7 cores are not BE32 capable; v4 cores are not BE8 > capable (but all are LE capable)
Thank you Don , My question was 1)Do BE8 mode is very mandatory for ARMv8 (arrch32) for big-endian support ? 2)Why do arm introduce BE8 mode ,not just big-endian (code and data big endian) like BE32? Please do favour here . Thank you ~Umesh
On Mon, 23 May 2016 04:42:29 -0700 (PDT), umesh.kalappa0@gmail.com
wrote:

>My question was
You asked this in comp.arch. Did you not like the answer there?
>1)Do BE8 mode is very mandatory for ARMv8 (arrch32) for big-endian support ?
Not if BE32 is available (I don't know ARM8). The choice for CPUs that can do either is simply programmer preference.
>2)Why do arm introduce BE8 mode ,not just big-endian (code and data >big endian) like BE32?
BE8 vs BE32 is not about the CPU ... its about what the programmer sees when inspecting memory. With BE32, memory access is (32-bit) word oriented and words are stored little-endian in memory with the LSB at the lowest address. The value becomes big-endian only when loaded into a register. In memory the value 0x12345678 in memory looks like addr+0 = 0x78 addr+1 = 0x56 addr+2 = 0x34 addr+3 = 0x12 The problem with BE32 is that it is difficult to compare values in registers to values in memory because in memory the bytes of the value are in different order: 16-bit values are byte swapped, 32-bit values additionally are half-word swapped, and 64-bit values even more so are word swapped. In memory the 64-bit value 0x1234567890ABCDEF looks like addr+0 = 0x78 addr+1 = 0x56 addr+2 = 0x34 addr+3 = 0x12 addr+4 = 0xEF addr+5 = 0xCD addr+6 = 0xAB addr+7 = 0x90 BE8 is easier to work with - all values are stored big-endian in memory with the MSB at the lowest address. In memory the value 0x12345678 looks like addr+0 = 0x12 addr+1 = 0x34 addr+2 = 0x56 addr+3 = 0x78 and the 64-bit value 0x1234567890ABCDEF looks like addr+0 = 0x12 addr+1 = 0x34 addr+2 = 0x56 addr+3 = 0x78 addr+4 = 0x90 addr+5 = 0xAB addr+6 = 0xCD addr+7 = 0xEF just as a naive programmer might expect. George
The 2026 Embedded Online Conference