A method of determining a recovery point from which to resume instruction execution following handling of an unexpected change in instruction flow, the method comprising:
- executing software on processing circuitry having an associated instruction set architecture, the software comprising instructions defined by the instruction set architecture;
- controlling operation of the processing circuitry according to constraints defined by the instruction set architecture;
- defining within the instruction set architecture a default recovery point constraint for determining the recovery point;
- detecting presence of a recovery point relaxation condition based on information derived from the software executing on the processing circuitry;
- and
- responsive to detection of said recovery point relaxation condition, allowing determination of the recovery point unconstrained by the default recovery point constraint;
- wherein:
- said software comprises one or more memory access instructions used to move data between memory and registers accessible to the processing circuitry;
- and
- said recovery point relaxation condition is determined when said information derived from the software executing on the processing circuitry identifies one or more of said memory access instructions as being repeatable.