Next: layout blocks, Previous: layout intro, Up: layout [Contents][Index]
Most platforms require pointers to words to be aligned on a word boundary. Thus, on a 32-bit machine, memory addresses will always have zero in the lower 2 bits, because we can only point to multiples of 4 bytes. On a 64-bit machine, word addresses will have zero in the lower 4 bits.
Because the lower two bits are never used, we can perform a simple trick: any value that has either of the lower two bits set cannot be a word pointer, so we enforce immediate objects to have either bit set.
• layout bitfid objrep | Representation of objects. | |
• layout bitfid immediate | Bit patterns of immediate values. |
Next: layout blocks, Previous: layout intro, Up: layout [Contents][Index]