Skip navigation

Standard Performance Evaluation Corporation

Facebook logo LinkedIn logo Twitter logo
 
 

Byte Ordering in 124.m88ksim

Date: Tue, 25 Mar 97 12:57:29 MET

All machines have a certain ordering to the bits within a byte or a word. Most systems have agreed on the order of bits within a byte, however there is still difference of opinion in the order of bytes within a word. Some expect to start with the least significant byte, some expect to start with the most significant byte. Usually this is an issue that concerns only real computer scientists; however, there are times when such differences become an issue, especially when attempting to deal with non-character data (e.g. reading data from a file that is in a binary format).

The application in 128.m88ksim is a simulator; in this case a simulator for an Motorola 88000 system which can take an executable built for an 88000 system. The benchmark reads in from a disk file a binary image that represents that executable. However, if the benchmark and your system have differing ideas about which end of a word comes first, then the machine instructions and everything else in that binary file will become garbled.

This benchmark, if compiled without additional compiler flags, assumes a "big endian" byte order for the system under test. This holds, for example, for IBM-based, Motorola-based, MIPS-based systems. For Intel-based, Digital-based and other systems, the converse, "little endian" byte order, is true.

For such "little endian" systems, the following lines are necessary in the configuration file

        124.m88ksim=default=default=default:
        EXTRA_CFLAGS = -DLEHOST
   

This is a "portability flag"; for baseline measurements, it does not count towards the maximum number of four (performance) flags.