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