return basicBlocks;
  processBranchTarget(int index, int branchtarget, short byteToBlockMap[],                       VM_BasicBlock basicBlocks[]) {    VM_BasicBlock newBB, currentBB;    if (byteToBlockMap[branchtarget] == VM_BasicBlock.NOTBLOCK) {      newBB = new VM_BasicBlock(branchtarget);      basicBlocks = addBasicBlock(newBB, basicBlocks);		       byteToBlockMap[branchtarget] = (short)newBB.getBlockNumber();      currentBB = basicBlocks[byteToBlockMap[index]];      newBB.addPredecessor(currentBB);    }    else if (index > branchtarget) {      // This is a backwards branch      basicBlocks = processBackwardBranch(index, branchtarget, 					  byteToBlockMap, basicBlocks);    }    else {      // This is a forward branch to an existing block, need to register       // the predecessor      currentBB = basicBlocks[byteToBlockMap[index]];      basicBlocks[byteToBlockMap[branchtarget]].addPredecessor(currentBB);    }    return basicBlocks;  }