1. A method of controlling an instruction prefetch buffer that stores the code for a number of instructions that have already been executed as well as the code for a number of instructions yet to be executed, said method comprising the steps of: storing an instruction fetch pointer which is supplied to said buffer as a write pointer that points to the location where a new word is to be written into the buffer; writting instructions into said buffer at the locations pointed to by said instruction fetch pointer; storing an instruction execution pointer which is supplied to said buffer as a read pointer that points to the location from which an instruction is to be read from the buffer; reading instructions from locations in the buffer pointed to by said instruction execution pointer; decoding each instruction read from the buffer to determine if it is a branch or jump instrustion; determining if a target instruction of a branch or jump instruction is within a range of instructions which may be stored in the buffer; determining for those target instructions found to be within said range if the target instruction is in the buffer; and setting the instruction execution pointer to the location of the target instruction found to be in the buffer, said target instruction being either preceding or following a current instruction in the buffer.