Offset instructionIndex = instructionOffset.rsha(LG_INSTRUCTION_WIDTH);
Offset instructionIndex = instructionOffset.toWord().rsha(LG_INSTRUCTION_WIDTH).toOffset();
  public final int findBytecodeIndexForInstruction (Offset instructionOffset) throws UninterruptiblePragma {    // since "instructionIndex" points just beyond the desired instruction,    // we scan for the line whose "instructionIndex" most-closely-preceeds    // the desired instruction    //    Offset instructionIndex = instructionOffset.rsha(LG_INSTRUCTION_WIDTH);    int candidateIndex = -1;    for (int i = 0, n = _bytecodeMap.length; i < n; i++) {      Offset bcMi = Offset.fromIntSignExtend(_bytecodeMap[i]);       if ( bcMi.sGE(instructionIndex))        break;      // remember index at which each bytecode starts      if (!bcMi.isZero())        candidateIndex = i;    }    return candidateIndex;  }