pointer tags - bit 0 0 - object 1 - integer object header - bit 0: GC mark bit bit 1: weak reference bit bits 2..23: identity hash bits 24..31: object size, in words object format - 0: object header 4: pointer to map *: optional extended object size, in bytes (if object size in header is 16rFF) 8: slot value pointer 0 8+4*N: slot value pointer N - slot values are at offsets specified by the map role entry format - 0: pointer to slot name 4: role position 8: pointer to method slot entry format - 0: pointer to slot name 4: slot offset map format - 0: object header 4: pointer to representative object 8: number of delegation slots 12: number of data slots 16: pointer to array of method dependencies 20: oldest generation of weak references 24: dispatch id, 64 bits 32: visited position mask 36: pointer to array of slot entries 40: pointer to array of role entries - slot/role entries are hashed, power-of-2 hash table size method format additions - 0: dispatch id, 64 bits 8: dispatch position mask 12: found roles position mask 16: dispatch rank