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.
 |