4 ms·
A good recent real life example of this is when the POWER architecture moved to Little Endian. The API's stayed the same (think GLib C API), but LE introduced a
by filereaper 10y ago
A good recent real life example of this is when the POWER architecture moved to Little Endian. The API's stayed the same (think GLib C API), but LE introduced a new ABI where registers (ie r12) which had a specific purpose in BE changed in LE. This all has to do with linking/compiling.
At runtime if you're reading/writing to memory you had to ensure that you read and write using the same "stride" ie reading and writing back in 32bits is fine, but if you read in 32bits do some transforms in a register and write it out in 16bits you'd have to make sure the internal register BE representation and the written out to memory LE representation made sense.
The GCC and other compiler guys can give you lots of war stories about SIMD (VMX/VSX on POWER)
Anyways, just something I thought off the top of my head :)
- alistproducer2 10y agoThanks. I've been reading up on OS Dev and static and dynamic libraries and have been trying to wrap my head around why an ABI change could blow things up.