> The 68k supported type tagging by having 24 bit addresses on a 32 bit machine.
Not quite: Having hardware support for type tagging means the machine knows that some bits are reserved for the tag and will therefore do arithmetic in a tag-preserving fashion. The 24-bit pointers in early m68k chips was just saving 8 bits worth of address lines.
The SPARC had tag support in hardware, in the form of special arithmetic opcodes. Further explanation:
Comments
> The 68k supported type tagging by having 24 bit addresses on a 32 bit machine.
Not quite: Having hardware support for type tagging means the machine knows that some bits are reserved for the tag and will therefore do arithmetic in a tag-preserving fashion. The 24-bit pointers in early m68k chips was just saving 8 bits worth of address lines.
The SPARC had tag support in hardware, in the form of special arithmetic opcodes. Further explanation:
http://compilers.iecc.com/comparch/article/91-04-088
> I'm not sure if allowing tagging was intentional when Motorola designed the 68k
Definitely not; it was a cost-saving measure, and a lot of software broke when a later processor made pointers fully 32-bit.
> but Mac OS did store flags in the upper bits of a pointer at some stage.
...and having a 32-bit-clean Finder was a big deal for a while because that meant it could run on the newer hardware.