if (VM.VerifyAssertions) VM.assert((value & ~0x1) == 0);
if (VM.VerifyAssertions) VM._assert((value & ~0x1) == 0);
  boolean testAndMark(Object object, int value) throws VM_PragmaUninterruptible {    if (VM.VerifyAssertions) VM.assert((value & ~0x1) == 0);    if (DEBUG) VM.sysWrite("testAndMark ", VM_Magic.objectAsAddress(object));    int word   = wordIndex(object);    int offset = word << LOG_WORDSIZE;    int bitnum = bitIndex(object, word);    int bitval = 1 << bitnum;    int oldValue;    int newValue;    do {      oldValue = VM_Magic.prepare(marks, offset);      int markBit = getBit(oldValue, bitnum);      if (markBit == value) {	if (DEBUG) VM.sysWriteln(" [false]");	return false;      }      newValue = oldValue ^ bitval;    } while (! VM_Magic.attempt(marks, offset, oldValue, newValue));    if (DEBUG) VM.sysWriteln(" [true]");    return true;  }