*/
  private final void setBit(int page, int slot, int word, int bit, boolean set) //throws VM_PragmaInline   {    if (VM_Interface.VerifyAssertions) {      VM_Interface._assert(page < PAGEMAPS_IN_OBJECTMAP);      VM_Interface._assert(slot < BITMAPS_IN_PAGEMAP);      VM_Interface._assert(word < INTS_IN_BITMAP);      VM_Interface._assert(bit < BITS_IN_INT);      VM_Interface._assert(!getPagemap(page).isZero(), "setBit: bad page");      VM_Interface._assert(!getBitmap(page, slot).isZero(), "setBit: bad slot");    }    // Get the old value of the word    int wordValue = getBitmapInt(page, slot, word);    int mask = 1 << bit;    // Check that it isn't / is already set    if (VM_Interface.VerifyAssertions)       if (set) {        if((wordValue & mask) != 0) {          debug(0, "Bit already set for ", bitmapToAddress(page, slot, word, bit));          debug(0, ", slot=", slot);          debug(0, ", word=", word);          debug(0, ", bit=", bit);          debug(0, ", wordValue=", wordValue);          debugln(0, ", mask=", mask);          debugln(0, "  Heap: ", Plan.totalMemory());          debugln(0, "  Total allocated = ", allocCounter);          debug(0, "  ");          dbgObjectMap();        }        //VM_Interface._assert((wordValue & mask) == 0, "  ObjectMap bit already set");      } else {        if((wordValue & mask) == 0) {          debug(0, "Bit not set for ", bitmapToAddress(page, slot, word, bit));          debug(0, ", slot=", slot);          debug(0, " word=", word);          debugln(0, " bit=", bit);          debug(0, ", wordValue=", wordValue);          debug(0, ", mask=", mask);          debugln(0, "  Heap: ", Plan.totalMemory());          debugln(0, "  Total allocated = ", allocCounter);          debug(0, "  ");          dbgObjectMap();        }        //VM_Interface._assert((wordValue & mask) != 0, "  ObjectMap bit not set");      }    // Set the bit    int value = set ? (wordValue | mask) :                      (wordValue & (~mask));    setBitmapInt(page, slot, word, value);  }