ARM and x86_64 require "real" pointers to be sign-extended in their top bits. This means a working pointer is guaranteed to have either "11" as leading bits, or "00". So, to tag a "fake" pointer which is an unboxed 32-bit integer, we simply toggle the leading bit. |
||
|---|---|---|
| .. | ||
| compiler | ||
| cs325-langs | ||
| time-traveling | ||
| typesafe-interpreter | ||