A method of operating a computer to fetch decode and execute instructions which computer has storage circuitry holding a plurality of instructions at respective storage locations, said plurality of instructions being arranged in instructions strings, each string comprising a first instruction and a set of subsequent instructions the method comprising:
- fetching a sequence of instructions from said storage circuitry and providing an indication of a next address at which a next fetch operation is to be effected, wherein a first instruction fetcher fetches subsequent instructions and a second instruction fetcher fetches new instructions;
- decoding said instructions;
- executing each instruction in turn, wherein at least some of said instruction strings each include,
- (a) a set branch instruction (SET) which provides an indication of a target location from which a subsequent instruction may be fetched, the subsequent instruction being from a different instruction string,
- (b) a condition instruction which defines a condition for a branch to be taken, and
- (c) an effect branch instruction for implementing the branch;
- on execution of said set branch instruction, holding the indication of said target location in a target store, fetching in parallel the subsequent instructions from the string containing said branch instruction and the new instructions from said different instruction string commencing from said target location;
- continuing to execute said subsequent instructions until the effect branch instruction is executed which indicates that further instructions to be executed are said new instructions if the condition defined by the condition instruction is satisfied;
- and
- responding to said effect branch instruction by commencing execution of said new instructions, said effect branch instruction selecting which of said first and second instruction fetchers supplies instructions for execution.