MC68060 Software Package
C.2.3 Module 2: Unimplemented Integer Instruction Library
The M68060SP provides a library version of the following unimplemented integer instruc-
tions: 64-bit divide, 64-bit multiply, and CMP2. This version can be compiled with user appli-
cations desiring the functionality of these instructions. Using the library method, an
application does not have to incur the overhead of the unimplemented integer instruction
The routines are System V ABI compliant. Currently, the arguments are expected on the
stack by the M68060SP library routines. For _divu64, _divs64, _mulu64, and _muls64, the
results are not returned in a pair of data registers as with the actual instructions, but rather
in a two-long-word memory array pointed to by a pointer argument provided by the caller.
* _real_cas(), _real_cas2(): MC68060ISP Call-out to provide choice
* of using supplied _isp_cas() and _isp_cas2() routines or to
* write an alternate routine more fitted for the system.
* _isp_cas(), _isp_cas2(): CAS and CAS2 core routine entry point that
* can be called from _real_cas() and _real_cas2() if the system wishes
* to use the CAS and CAS2 emulation code provided with the package.
* The flow is:
* (exception) -> _isp_unimp -> _real_cas{2) -> _isp_cas{2}
* _isp_cas_inrange(): Subroutine entry point provided by the 68060ISP
* for use by the access error handler that reports if a given
* address resides within the _isp_cas() or _isp_cas2() routines.
* Inputs:
* a0 = instruction address in question
* Outputs:
* d0 = 0 -> success; non-zero -> failure
* _isp_cas_terminate(): Entry point provided by the MC68060ISP for
* use by an access error handler to create an access error frame for
* a process and to exit the CAS or CAS2 emulation gracefully.
* Inputs:
* a0 = faulting address
* d0 = Fault Status Longword
* _isp_cas_restart(): Entry point provided by the 68060ISP for use
* by an access error handler to re-start _isp_cas() and _isp_cas2()
* if a recoverable bus error occurs within the _isp_cas() and _isp_cas2()
* routines.
* _isp_cas_finish(), _isp_cas2_finish(): Entry point provided by the
* MC68060ISP for use by system-specific implementations of cas. Enter
* here to exit gracefully through the package.
* The flow is:
* (exception) ->_isp_unimp -> _real_cas{2} -> (new code)
* -> _isp_cas{2}_finish
* This requires close examination of the _isp_cas() and _isp_cas2() source
* code.
Figure C-4. CAS and CAS2 Call-Outs and Entry Points
Terms of Use | Privacy Policy | DMCA Policy
2006-2020 Rsmanuals.com