int value = VM_Magic.getMemoryInt(block.add(FREE_LIST_OFFSET)); value -= (1<<INUSE_SHIFT); VM_Magic.setMemoryInt(block.add(FREE_LIST_OFFSET), value); int count = value>>INUSE_SHIFT;
VM_Word value = VM_Magic.getMemoryWord(block.add(FREE_LIST_OFFSET)); value = value.sub(VM_Word.one().lsh(INUSE_SHIFT)); VM_Magic.setMemoryWord(block.add(FREE_LIST_OFFSET), value); int count = value.rshl(INUSE_SHIFT).toInt();
  private static final int decInUse(VM_Address block)     throws VM_PragmaInline {        int value = VM_Magic.getMemoryInt(block.add(FREE_LIST_OFFSET));    value -= (1<<INUSE_SHIFT);    VM_Magic.setMemoryInt(block.add(FREE_LIST_OFFSET), value);    int count = value>>INUSE_SHIFT;    if (VM_Interface.VerifyAssertions) {      VM_Interface._assert(count >= 0 && count < (1<<INUSE_BITS));    }    return count;  }