Article View: comp.arch
Article #2442Re: (Im)precise exceptions
From: Andrew Klossner
Date: Wed, 04 Oct 1989 19:40
Date: Wed, 04 Oct 1989 19:40
45 lines
2593 bytes
2593 bytes
>>Fortunately the 88000 provides special registers which contain the
>>necessary information for the software to complete an instruction
>>that caused an imprecise exception.
> ^^^^^^^^^
>
>Ok, this term has been bandied about on the net before. When (precisely :-)
>is an exception imprecise? When is it precise? Does it affect ones handling
>of the exception? When does one need to differentiate between the two?
As used in the M88k documentation, a precise exception is one which
fires as the instruction begins to execute. An imprecise exception is
one that fires later, possibly when subsequent instructions have
already kicked off.
A major distinction is that the PC points to the offending instruction
on a precise exception, but for an imprecise exception you have no way
of identifying that instruction. (This is an oversimplification --
there are three program counters -- but you get the idea.)
The chip squirrels away enough information that you can fix up the
cause of an imprecise exception and continue execution. (For example,
on page fault, you get the address of the missing word, and the data if
the fault was brought on by a store, or the destination register number
if it was a load.) But, since the PC is missing, you can't back up and
restart.
Precise exceptions include:
-- integer add/subtract overflow
-- divide-by-zero (and integer divide-with-negative-operand, sigh)
-- float-to-int overflow
-- float reserved operand
-- load/store to/from misaligned address (unless disabled, when it
acts like the ROMP)
-- unimplemented opcode
-- privileged instruction (while in user mode)
Imprecise exceptions include:
-- page fault
-- load/store of non-existent memory
-- float overflow, underflow, inexact
-=- Andrew Klossner (uunet!tektronix!frip.WV.TEK!andrew) [UUCP]
(andrew%frip.wv.tek.com@relay.cs.net) [ARPA]
Technical Details
Message-ID:
<4833@orca.WV.TEK.COM>Path:
arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!zephyr.ens.tek.com!orca!frip!andrewReferences:
<2353@oakhill.UUCP> <261500010@S34.Prime.COM> <34701@apple.Apple.COM> <2451@wyse.wyse.com> <477@ctycal.UUCP> <265@ssp1.idca.tds.philips.nl> <4796@orca.WV.TEK.COM> <27659@shemp.CS.UCLA.EDU> <269@ssp1.idca.tds.philips.nl>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!zephyr.ens.tek.com!orca!frip!andrew From: andrew@frip.WV.TEK.COM (Andrew Klossner) Newsgroups: comp.arch Subject: Re: (Im)precise exceptions Message-ID: <4833@orca.WV.TEK.COM> Date: 4 Oct 89 19:40:04 GMT References: <2353@oakhill.UUCP> <261500010@S34.Prime.COM> <34701@apple.Apple.COM> <2451@wyse.wyse.com> <477@ctycal.UUCP> <265@ssp1.idca.tds.philips.nl> <4796@orca.WV.TEK.COM> <27659@shemp.CS.UCLA.EDU> <269@ssp1.idca.tds.philips.nl> Sender: nobody@orca.WV.TEK.COM Reply-To: andrew@frip.wv.tek.com Organization: Tektronix, Wilsonville, Oregon Lines: 45