~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP
M68000 Hi-Performance Microprocessor Division
M68060 Software Package
Production Release P1.00 -- October 10, 1994

M68060 Software Package Copyright © 1993, 1994 Motorola Inc.  All rights reserved.

THE SOFTWARE is provided on an "AS IS" basis and without warranty.
To the maximum extent permitted by applicable law,
MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED,
INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
and any warranty against infringement with regard to the SOFTWARE
(INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials.

To the maximum extent permitted by applicable law,
IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER
(INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS,
BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS)
ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE.
Motorola assumes no responsibility for the maintenance and support of the SOFTWARE.

You are hereby granted a copyright license to use, modify, and distribute the SOFTWARE
so long as this entire notice is retained without alteration in any modified and/or
redistributed versions, and that such modified versions are clearly identified as such.
No licenses are granted by implication, estoppel or otherwise under any patents
or trademarks of Motorola, Inc.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68060 INTEGER SOFTWARE PACKAGE (Library version)
-------------------------------------------------

The file ilsp.s contains the "Library version" of the
68060 Integer Software Package. Routines included in this
module can be used to emulate 64-bit divide and multiply,
and the "cmp2" instruction. These instructions are not
implemented in hardware on the 68060 and normally take
exception vector #61 "Unimplemented Integer Instruction".

By re-compiling a program that uses these instructions, and
making subroutine calls in place of the unimplemented
instructions, a program can avoid the overhead associated with
taking the exception.

Release file format:
--------------------
The file ilsp.sa is essentially a hexadecimal image of the
release package. This is the ONLY format which will be supported.
The hex image was created by assembling the source code and
then converting the resulting binary output image into an
ASCII text file. The hexadecimal numbers are listed
using the Motorola Assembly Syntax assembler directive "dc.l"
(define constant longword). The file can be converted to other
assembly syntaxes by using any word processor with a global
search and replace function.

To assist in assembling and linking this module with other modules,
the installer should add a symbolic label to the top of the file.
This will allow calling routines to access the entry points
of this package.

The source code ilsp.s has also been included but only for
documentation purposes.

Release file structure:
-----------------------
The file ilsp.sa contains an "Entry-Point" section and a
code section. The ILSP has no "Call-Out" section. The first section
is the "Entry-Point" section. In order to access a function in the
package, a program must "bsr" or "jsr" to the location listed
below in "68060ILSP Entry Points" that corresponds to the desired
function. A branch instruction located at the selected entry point
within the package will then enter the correct emulation code routine.

The entry point addresses at the beginning of the package will remain
fixed so that a program calling the routines will not have to be
re-compiled with every new 68060ILSP release.

For example, to use a 64-bit multiply instruction,
do a "bsr" or "jsr" to the entry point defined by
the 060ILSP entry table. A compiler generated code sequence
for unsigned multiply could look like:

# mulu.l <ea>,Dh:Dl
# mulu.l _multiplier,%d1:%d0

	subq.l	&0x8,%sp	# make room for result on stack
	pea	(%sp)		# pass: result addr on stack
	mov.l	%d0,-(%sp)	# pass: multiplicand on stack
	mov.l	_multiplier,-(%sp) # pass: multiplier on stack
	bsr.l	_060LISP_TOP+0x18 # branch to multiply routine
	add.l	&0xc,%sp	# clear arguments from stack
	mov.l	(%sp)+,%d1	# load result[63:32]
	mov.l	(%sp)+,%d0	# load result[31:0]

For a divide:

# divu.l <ea>,Dr:Dq
# divu.l _divisor,%d1:%d0

	subq.l	&0x8,%sp	# make room for result on stack
	pea	(%sp)		# pass: result addr on stack
	mov.l	%d0,-(%sp)	# pass: dividend hi on stack
	mov.l	%d1,-(%sp)	# pass: dividend hi on stack
	mov.l	_divisor,-(%sp) # pass: divisor on stack
	bsr.l	_060LISP_TOP+0x08 # branch to divide routine
	add.l	&0xc,%sp	# clear arguments from stack
	mov.l	(%sp)+,%d1	# load remainder
	mov.l	(%sp)+,%d0	# load quotient

The library routines also return the correct condition code
register value. If this is important, then the caller of the library
routine must make sure that the value isn't lost while popping
other items off of the stack.

An example of using the "cmp2" instruction is as follows:

# cmp2.l <ea>,Rn
# cmp2.l _bounds,%d0

	pea	_bounds		# pass ptr to bounds
	mov.l	%d0,-(%sp)	# pass Rn
	bsr.l	_060LSP_TOP_+0x48 # branch to "cmp2" routine
	mov.w	%cc,_tmp	# save off condition codes
	addq.l	&0x8,%sp	# clear arguments from stack

Exception reporting:
--------------------
If the instruction being emulated is a divide and the source
operand is a zero, then the library routine, as its last
instruction, executes an implemented divide using a zero
source operand so that an "Integer Divide-by-Zero" exception
will be taken. Although the exception stack frame will not
point to the correct instruction, the user will at least be able
to record that such an event occurred if desired.

68060ILSP entry points:
-----------------------
_060ILSP_TOP:
0x000:	_060LSP__idivs64_
0x008:	_060LSP__idivu64_

0x010:	_060LSP__imuls64_
0x018:	_060LSP__imulu64_

0x020:	_060LSP__cmp2_Ab_
0x028:	_060LSP__cmp2_Aw_
0x030:	_060LSP__cmp2_Al_
0x038:	_060LSP__cmp2_Db_
0x040:	_060LSP__cmp2_Dw_
0x048:	_060LSP__cmp2_Dl_
