summaryrefslogtreecommitdiff
path: root/ANDROID_3.4.5/arch/m68k/ifpsp060/ilsp.doc
diff options
context:
space:
mode:
Diffstat (limited to 'ANDROID_3.4.5/arch/m68k/ifpsp060/ilsp.doc')
-rw-r--r--ANDROID_3.4.5/arch/m68k/ifpsp060/ilsp.doc150
1 files changed, 0 insertions, 150 deletions
diff --git a/ANDROID_3.4.5/arch/m68k/ifpsp060/ilsp.doc b/ANDROID_3.4.5/arch/m68k/ifpsp060/ilsp.doc
deleted file mode 100644
index 4e6292f0..00000000
--- a/ANDROID_3.4.5/arch/m68k/ifpsp060/ilsp.doc
+++ /dev/null
@@ -1,150 +0,0 @@
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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_