A data processing apparatus operating under program control in a first state, having a first domain of facilities within the apparatus including first domain storage space, or in a second state having a second domain of facilities within the apparatus including second domain storage space, for processing a sequence of instructions normally in the first state, the sequence of instructions including an instruction that results in a branch to the second state for execution of a program of instructions in the second domain wherein the data processing system has a pipeline structure executing instructions in a plurality of pipeline machine cycles, including an Instruction Decode (D) cycle, an Address Generation (A) cycle, and an Operand Fetch (B) cycle, comprising:
- decoding means, responsive to an instruction in the first state, for generating a control code from the instruction in the Instruction Decode cycle, the control code including a branch signal and a branch test signal;
- first means coupled to the decoding means to receive the branch test signal, for detecting program exceptions in or before the Operand Fetch cycle;
- second means, coupled to the decoding means and the first means, responsive to the branch signal for branching program control of the apparatus to the second state to enter a fast program of instructions in the second domain if no program exception is detected;
- and
- third means, coupled to the decoding means and the first means, responsive to the branch signal for branching program control of the apparatus to the second state to enter an alternate program of instructions in the second domain if a program exception is detected.