Weird Machines

C Portability Lessons from Weird Machines:

Cray T90: This machine provides another cautionary tale about trying to manipulate pointer values as if they were integers. On this architecture char or void are secretly word pointers with an offset stored in the three unused higher-order bits. Thus incrementing char* as an integer value would move to the next word but keep the same offset.

Prime 50 series: Notable for using a NULL pointer address that is not bitwise zero. In particular it uses segment 07777, offset 0 for the null pointer. (Some Honeywell-Bull mainframes use 06000 for the NULL pointer value, which is another example of non-zero NULL.)

Previously, previously, previously, previously, previously.

Tags: , ,

  • Previously