Remix.run Logo
gblargg 2 days ago

What's old is new again. The original 68000 processor only had a 24-bit physical address bus, so the MacOS used the upper 8 bits for tag information, and didn't even need to clear it when accessing. Once they started using CPUs and more RAM that needed these upper bits, they had to make "32-bit clean" versions of programs.

I wonder whether you could use the MMU to ignore these upper bits, by mapping each combination of bits to the same address as with them clear.

praptak 2 days ago | parent | next [-]

Pointer tagging is at least as old as Lisp: https://www.snellman.net/blog/archive/2017-09-04-lisp-number...

scheme271 2 days ago | parent | prev [-]

Pointer tagging has been around for a while in the Java / JVM context. It lets you add information for bookkeeping when doing GC operations. There might be some usages elsewhere (unboxed vs boxed values, etc).