Computer systems typically order bytes in computer memory in either a “big-endian” format or a “little-endian” format. A big endian format specifies the most significant byte (MSB) of multi-byte data in a lower address location of a memory entry, whereas the little endian format specifies the least significant byte (LSB) of the multi-byte data in the lower address location of a memory entry. Using address locations 0, 1, 2, and 3 and multi-byte data “ABCD” as an example, big endian ordering stores the data in the address locations as A→0 (MSB in lowest address location), B→1, C→2, and D→3, whereas little endian ordering stores the data in the address locations as D→0 (LSB in lowest address location), C→1, B→2, and A→3.
When a software developer writes software application code, the software developer typically knows the byte ordering endianness format of the software code's target computer system, which is important when the software developer writes code to load data from a specific byte location in memory (e.g., byte location “3”). This is especially true in multi-core systems when a first core stores multi-byte data in a shared memory location and a second core retrieves a portion of the multi-byte data from the same shared memory location.
On occasion, a software developer may migrate software code (or a portion of software code) developed for a first multi-core system onto a second multi-core system that utilizes a different byte ordering endianness format (e.g., for code reuse, lower cost computing device, etc.). As such, specific byte location memory operations between cores may result in one of the cores loading incorrect data when executing load operations.