Addendum about the M bit. To see why object headers want to live with their objects, consider what happens to the fast-path store barrier on the Pentium
If the M bit is in the object header: andb -1(%obRef), $MBIT jnz done call __long_store_barrier done: If the M bit is in the block metadata, one byte per line %rTmp = %obRef >> $7 ; Compute the line number %rTmp = %rTmp & $127 %rBlock = %obRef & $~!27 andB (%rBlock + %rTmp), $MBIT jnz done call __long_store_barrier done: It's a pretty substantial change. The worst of it being the need for two additional registers. The more I look at it, the more convinced I am that the M bit has to stay with the object. Jonathan
_______________________________________________ bitc-dev mailing list bitc-dev@coyotos.org http://www.coyotos.org/mailman/listinfo/bitc-dev