121 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| 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.
 | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| CHANGES SINCE LAST RELEASE:
 | |
| ---------------------------
 | |
| 
 | |
| 1) "movep" emulation where data was being read from memory
 | |
| was reading the intermediate bytes. Emulation now only
 | |
| reads the required bytes.
 | |
| 
 | |
| 2) "flogn", "flog2", and "flog10" of "1" was setting the
 | |
| Inexact FPSR bit. Emulation now does not set Inexact for
 | |
| this case.
 | |
| 
 | |
| 3) For an opclass three FP instruction where the effective addressing
 | |
| mode was pre-decrement or post-increment and the address register
 | |
| was A0 or A1, the address register was not being updated as a result
 | |
| of the operation. This has been corrected.
 | |
| 
 | |
| 4) Beta B.2 version had the following erratum:
 | |
| 
 | |
| 	Scenario:
 | |
| 	---------
 | |
| 	If {i,d}mem_{read,write}_{byte,word,long}() returns
 | |
| 	a failing value to the 68060SP, the package ignores
 | |
| 	this return value and continues with program execution
 | |
| 	as if it never received a failing value.
 | |
| 
 | |
| 	Effect:
 | |
| 	-------
 | |
| 	For example, if a user executed "fsin.x ADDR,fp0" where
 | |
| 	ADDR should cause a "segmentation violation", the memory read
 | |
| 	requested by the package should return a failing value
 | |
| 	to the package. Since the package currently ignores this
 | |
| 	return value, the user program will continue to the
 | |
| 	next instruction, and the result created in fp0 will be
 | |
| 	undefined.
 | |
| 
 | |
| 	Fix:
 | |
| 	----
 | |
| 	This has been fixed in the current release.
 | |
| 
 | |
| 	Notes:
 | |
| 	------
 | |
| 	Upon receiving a non-zero (failing) return value from
 | |
| 	a {i,d}mem_{read,write}_{byte,word,long}() "call-out",
 | |
| 	the package creates a 16-byte access error stack frame
 | |
| 	from the current exception stack frame and exits
 | |
| 	through the "call-out" _real_access(). This is the process
 | |
| 	as described in the MC68060 User's Manual.
 | |
| 
 | |
| 	For instruction read access errors, the info stacked is:
 | |
| 		SR	= SR at time of exception
 | |
| 		PC	= PC of instruction being emulated
 | |
| 		VOFF	= $4008 (stack frame format type)
 | |
| 		ADDRESS	= PC of instruction being emulated
 | |
| 		FSLW	= FAULT STATUS LONGWORD
 | |
| 
 | |
| 	The valid FSLW bits are:
 | |
| 		bit 27		= 1	(misaligned bit)
 | |
| 		bit 24		= 1	(read)
 | |
| 		bit 23		= 0	(write)
 | |
| 		bit 22:21	= 10	(SIZE = word)
 | |
| 		bit 20:19	= 00	(TT)
 | |
| 		bit 18:16	= x10	(TM; x = 1 for supervisor mode)
 | |
| 		bit 15		= 1	(IO)
 | |
| 		bit 0		= 1	(Software Emulation Error)
 | |
| 
 | |
| 	all other bits are EQUAL TO ZERO and can be set by the _real_access()
 | |
| 	"call-out" stub by the user as appropriate. The MC68060 User's Manual
 | |
| 	stated that ONLY "bit 0" would be set. The 060SP attempts to set a few
 | |
| 	other bits.
 | |
| 
 | |
| 	For data read/write access errors, the info stacked is:
 | |
| 		SR	= SR at time of exception
 | |
| 		PC	= PC of instruction being emulated
 | |
| 		VOFF	= $4008 (stack frame format type)
 | |
| 		ADDRESS	= Address of source or destination operand
 | |
| 		FSLW	= FAULT STATUS LONGWORD
 | |
| 
 | |
| 	The valid FSLW bits are:
 | |
| 		bit 27		= 0	(misaligned bit)
 | |
| 		bit 24		= x	(read; 1 if read, 0 if write)
 | |
| 		bit 23		= x	(write; 1 if write, 0 if read)
 | |
| 		bit 22:21	= xx	(SIZE; see MC68060 User's Manual)
 | |
| 		bit 20:19	= 00	(TT)
 | |
| 		bit 18:16	= x01	(TM; x = 1 for supervisor mode)
 | |
| 		bit 15		= 0	(IO)
 | |
| 		bit 0		= 1	(Software Emulation Error)
 | |
| 
 | |
| 	all other bits are EQUAL TO ZERO and can be set by the _real_access()
 | |
| 	"call-out" stub by the user as appropriate. The MC68060 User's Manual
 | |
| 	stated that ONLY "bit 0" would be set. The 060SP attempts to set a few
 | |
| 	other bits.
 |