changes revision 1.1
11.1Sis# 21.1Sis# $NetBSD: changes,v 1.1 2000/04/14 20:24:36 is Exp $ 31.1Sis# 41.1Sis 51.1Sis#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 61.1Sis# MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP 71.1Sis# M68000 Hi-Performance Microprocessor Division 81.1Sis# M68060 Software Package Production Release 91.1Sis# 101.1Sis# M68060 Software Package Copyright (C) 1993, 1994, 1995, 1996 Motorola Inc. 111.1Sis# All rights reserved. 121.1Sis# 131.1Sis# THE SOFTWARE is provided on an "AS IS" basis and without warranty. 141.1Sis# To the maximum extent permitted by applicable law, 151.1Sis# MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, 161.1Sis# INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS 171.1Sis# FOR A PARTICULAR PURPOSE and any warranty against infringement with 181.1Sis# regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) 191.1Sis# and any accompanying written materials. 201.1Sis# 211.1Sis# To the maximum extent permitted by applicable law, 221.1Sis# IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER 231.1Sis# (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, 241.1Sis# BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) 251.1Sis# ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE. 261.1Sis# 271.1Sis# Motorola assumes no responsibility for the maintenance and support 281.1Sis# of the SOFTWARE. 291.1Sis# 301.1Sis# You are hereby granted a copyright license to use, modify, and distribute the 311.1Sis# SOFTWARE so long as this entire notice is retained without alteration 321.1Sis# in any modified and/or redistributed versions, and that such modified 331.1Sis# versions are clearly identified as such. 341.1Sis# No licenses are granted by implication, estoppel or otherwise under any 351.1Sis# patents or trademarks of Motorola, Inc. 361.1Sis#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 371.1Sis 381.1SisCHANGES SINCE LAST RELEASE: 391.1Sis--------------------------- 401.1Sis 411.1Sis1) "movep" emulation where data was being read from memory 421.1Siswas reading the intermediate bytes. Emulation now only 431.1Sisreads the required bytes. 441.1Sis 451.1Sis2) "flogn", "flog2", and "flog10" of "1" was setting the 461.1SisInexact FPSR bit. Emulation now does not set Inexact for 471.1Sisthis case. 481.1Sis 491.1Sis3) For an opclass three FP instruction where the effective addressing 501.1Sismode was pre-decrement or post-increment and the address register 511.1Siswas A0 or A1, the address register was not being updated as a result 521.1Sisof the operation. This has been corrected. 531.1Sis 541.1Sis4) Beta 1.2 version had the following erratum: 551.1Sis 561.1Sis Scenario: 571.1Sis --------- 581.1Sis If {i,d}mem_{read,write}_{byte,word,long}() returns 591.1Sis a failing value to the 68060SP, the package ignores 601.1Sis this return value and continues with program execution 611.1Sis as if it never received a failing value. 621.1Sis 631.1Sis Effect: 641.1Sis ------- 651.1Sis For example, if a user executed "fsin.x ADDR,fp0" where 661.1Sis ADDR should cause a "segmentation violation", the memory read 671.1Sis requested by the package should return a failing value 681.1Sis to the package. Since the package currently ignores this 691.1Sis return value, the user program will continue to the 701.1Sis next instruction, and the result created in fp0 will be 711.1Sis undefined. 721.1Sis 731.1Sis Fix: 741.1Sis ---- 751.1Sis This has been fixed in the current release. 761.1Sis 771.1Sis Notes: 781.1Sis ------ 791.1Sis Upon receiving a non-zero (failing) return value from 801.1Sis a {i,d}mem_{read,write}_{byte,word,long}() "call-out", 811.1Sis the package creates a 16-byte access error stack frame 821.1Sis from the current exception stack frame and exits 831.1Sis through the "call-out" _real_access(). This is the process 841.1Sis as described in the MC68060 User's Manual. 851.1Sis 861.1Sis For instruction read access errors, the info stacked is: 871.1Sis SR = SR at time of exception 881.1Sis PC = PC of instruction being emulated 891.1Sis VOFF = $4008 (stack frame format type) 901.1Sis ADDRESS = PC of instruction being emulated 911.1Sis FSLW = FAULT STATUS LONGWORD 921.1Sis 931.1Sis The valid FSLW bits are: 941.1Sis bit 27 = 1 (misaligned bit) 951.1Sis bit 24 = 1 (read) 961.1Sis bit 23 = 0 (write) 971.1Sis bit 22:21 = 10 (SIZE = word) 981.1Sis bit 20:19 = 00 (TT) 991.1Sis bit 18:16 = x10 (TM; x = 1 for supervisor mode) 1001.1Sis bit 15 = 1 (IO) 1011.1Sis bit 0 = 1 (Software Emulation Error) 1021.1Sis 1031.1Sis all other bits are EQUAL TO ZERO and can be set by the _real_access() 1041.1Sis "call-out" stub by the user as appropriate. The MC68060 User's Manual 1051.1Sis stated that ONLY "bit 0" would be set. The 060SP attempts to set a few 1061.1Sis other bits. 1071.1Sis 1081.1Sis For data read/write access errors, the info stacked is: 1091.1Sis SR = SR at time of exception 1101.1Sis PC = PC of instruction being emulated 1111.1Sis VOFF = $4008 (stack frame format type) 1121.1Sis ADDRESS = Address of source or destination operand 1131.1Sis FSLW = FAULT STATUS LONGWORD 1141.1Sis 1151.1Sis The valid FSLW bits are: 1161.1Sis bit 27 = 0 (misaligned bit) 1171.1Sis bit 24 = x (read; 1 if read, 0 if write) 1181.1Sis bit 23 = x (write; 1 if write, 0 if read) 1191.1Sis bit 22:21 = xx (SIZE; see MC68060 User's Manual) 1201.1Sis bit 20:19 = 00 (TT) 1211.1Sis bit 18:16 = x01 (TM; x = 1 for supervisor mode) 1221.1Sis bit 15 = 0 (IO) 1231.1Sis bit 0 = 1 (Software Emulation Error) 1241.1Sis 1251.1Sis all other bits are EQUAL TO ZERO and can be set by the _real_access() 1261.1Sis "call-out" stub by the user as appropriate. The MC68060 User's Manual 1271.1Sis stated that ONLY "bit 0" would be set. The 060SP attempts to set a few 1281.1Sis other bits. 129