4.2.4. Abort exception handling

Aborts can be classified into precise aborts and imprecise aborts:

Precise aborts

A precise abort, also known as a synchronous abort, is one for which the exception is guaranteed to be taken on the instruction that generated the aborting memory access. The abort handler can use the value in the Link Register (r14_abt) to determine which instruction generated the abort, and the value in the Saved Program Status Register (SPSR_abt) to determine the state of the processor when the abort occurred.

Imprecise aborts

An imprecise abort, also known as an asynchronous abort, is one for which the exception is taken on a later instruction to the instruction that generated the aborting memory access. The abort handler cannot determine which instruction generated the abort, or the state of the processor when the abort occurred. Therefore, imprecise aborts are normally fatal.

ARMv5 cannot differentiate precise aborts and imprecise aborts. In some ARMv5 systems, such as ARM926, imprecise aborts are completely ignored by the CPU.

However, ARMv7 can detect whether an abort is precise or imprecise. In ARMv7, you can use the CPSR.A bit to mask an imprecise abort.

Copyright © 2014 ARM. All rights reserved.ARM DAI0425
Non-ConfidentialID080414