1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GR 3 M68000 Hi-Performance Microprocessor Division 4 M68060 Software Package 5 Production Release P1.00 -- October 10, 1994 6 7 M68060 Software Package Copyright © 1993, 199 8 9 THE SOFTWARE is provided on an "AS IS" basis a 10 To the maximum extent permitted by applicable 11 MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPR 12 INCLUDING IMPLIED WARRANTIES OF MERCHANTABILIT 13 and any warranty against infringement with reg 14 (INCLUDING ANY MODIFIED VERSIONS THEREOF) and 15 16 To the maximum extent permitted by applicable 17 IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY D 18 (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOS 19 BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORM 20 ARISING OF THE USE OR INABILITY TO USE THE SOF 21 Motorola assumes no responsibility for the mai 22 23 You are hereby granted a copyright license to 24 so long as this entire notice is retained with 25 redistributed versions, and that such modified 26 No licenses are granted by implication, estopp 27 or trademarks of Motorola, Inc. 28 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 29 30 68060 FLOATING-POINT SOFTWARE PACKAGE (Library 31 ---------------------------------------------- 32 33 The file fplsp.sa contains the "Library versio 34 68060SP Floating-Point Software Package. The r 35 included in this module can be used to emulate 36 FP instructions not implemented in 68060 hardw 37 instructions normally take exception vector #1 38 "FP Unimplemented Instruction". 39 40 By re-compiling a program that uses these inst 41 making subroutine calls in place of the unimpl 42 instructions, a program can avoid the overhead 43 with taking the exception. 44 45 Release file format: 46 -------------------- 47 The file fplsp.sa is essentially a hexadecimal 48 release package. This is the ONLY format which 49 The hex image was created by assembling the so 50 then converting the resulting binary output im 51 ASCII text file. The hexadecimal numbers are l 52 using the Motorola Assembly Syntax assembler d 53 (define constant longword). The file can be co 54 assembly syntaxes by using any word processor 55 search and replace function. 56 57 To assist in assembling and linking this modul 58 the installer should add a symbolic label to t 59 This will allow calling routines to access the 60 of this package. 61 62 The source code fplsp.s has also been included 63 documentation purposes. 64 65 Release file structure: 66 ----------------------- 67 The file fplsp.sa contains an "Entry-Point" se 68 code section. The FPLSP has no "Call-Out" sect 69 is the "Entry-Point" section. In order to acce 70 package, a program must "bsr" or "jsr" to the 71 below in "68060FPLSP entry points" that corres 72 function. A branch instruction located at the 73 within the package will then enter the correct 74 75 The entry point addresses at the beginning of 76 fixed so that a program calling the routines w 77 re-compiled with every new 68060FPLSP release. 78 79 There are 3 entry-points for each instruction 80 double precision, and extended precision. 81 82 As an example, the "fsin" library instruction 83 extended precision operand if program executes 84 85 # fsin.x fp0 86 87 fmovm.x &0x01,-(%sp) # pass operand 88 bsr.l _060FPLSP_TOP+0x1a8 # branch t 89 add.l &0xc,%sp # clear operan 90 91 Upon return, fp0 holds the correct result. The 92 set correctly. The FPCR is unchanged. The FPIA 93 94 Another example. This time, a dyadic operation 95 96 # frem.s %fp1,%fp0 97 98 fmov.s %fp1,-(%sp) # pass src ope 99 fmov.s %fp0,-(%sp) # pass dst ope 100 bsr.l _060FPLSP_TOP+0x168 # branch t 101 addq.l &0x8,%sp # clear operan 102 103 Again, the result is returned in fp0. Note tha 104 are passed in single precision format. 105 106 Exception reporting: 107 -------------------- 108 The package takes exceptions according to the 109 entry. If an exception should be reported, the 110 this exception using implemented floating-poin 111 For example, if the instruction being emulated 112 floating-point Operand Error exception, then t 113 executes an FMUL of a zero and an infinity to 114 exception. Although the FPIAR will be undefine 115 Operand Error exception handler, the user will 116 to record that the event occurred. 117 118 Miscellaneous: 119 -------------- 120 The package does not attempt to correctly emul 121 with Signalling NAN inputs. Use of SNANs shoul 122 this package. 123 124 The fabs/fadd/fdiv/fint/fintrz/fmul/fneg/fsqrt 125 are provided for the convenience of older comp 126 subroutine calls for all fp instructions. The 127 the instruction but rather simply executes it. 128 129 68060FPLSP entry points: 130 ------------------------ 131 _060FPLSP_TOP: 132 0x000: _060LSP__facoss_ 133 0x008: _060LSP__facosd_ 134 0x010: _060LSP__facosx_ 135 0x018: _060LSP__fasins_ 136 0x020: _060LSP__fasind_ 137 0x028: _060LSP__fasinx_ 138 0x030: _060LSP__fatans_ 139 0x038: _060LSP__fatand_ 140 0x040: _060LSP__fatanx_ 141 0x048: _060LSP__fatanhs_ 142 0x050: _060LSP__fatanhd_ 143 0x058: _060LSP__fatanhx_ 144 0x060: _060LSP__fcoss_ 145 0x068: _060LSP__fcosd_ 146 0x070: _060LSP__fcosx_ 147 0x078: _060LSP__fcoshs_ 148 0x080: _060LSP__fcoshd_ 149 0x088: _060LSP__fcoshx_ 150 0x090: _060LSP__fetoxs_ 151 0x098: _060LSP__fetoxd_ 152 0x0a0: _060LSP__fetoxx_ 153 0x0a8: _060LSP__fetoxm1s_ 154 0x0b0: _060LSP__fetoxm1d_ 155 0x0b8: _060LSP__fetoxm1x_ 156 0x0c0: _060LSP__fgetexps_ 157 0x0c8: _060LSP__fgetexpd_ 158 0x0d0: _060LSP__fgetexpx_ 159 0x0d8: _060LSP__fgetmans_ 160 0x0e0: _060LSP__fgetmand_ 161 0x0e8: _060LSP__fgetmanx_ 162 0x0f0: _060LSP__flog10s_ 163 0x0f8: _060LSP__flog10d_ 164 0x100: _060LSP__flog10x_ 165 0x108: _060LSP__flog2s_ 166 0x110: _060LSP__flog2d_ 167 0x118: _060LSP__flog2x_ 168 0x120: _060LSP__flogns_ 169 0x128: _060LSP__flognd_ 170 0x130: _060LSP__flognx_ 171 0x138: _060LSP__flognp1s_ 172 0x140: _060LSP__flognp1d_ 173 0x148: _060LSP__flognp1x_ 174 0x150: _060LSP__fmods_ 175 0x158: _060LSP__fmodd_ 176 0x160: _060LSP__fmodx_ 177 0x168: _060LSP__frems_ 178 0x170: _060LSP__fremd_ 179 0x178: _060LSP__fremx_ 180 0x180: _060LSP__fscales_ 181 0x188: _060LSP__fscaled_ 182 0x190: _060LSP__fscalex_ 183 0x198: _060LSP__fsins_ 184 0x1a0: _060LSP__fsind_ 185 0x1a8: _060LSP__fsinx_ 186 0x1b0: _060LSP__fsincoss_ 187 0x1b8: _060LSP__fsincosd_ 188 0x1c0: _060LSP__fsincosx_ 189 0x1c8: _060LSP__fsinhs_ 190 0x1d0: _060LSP__fsinhd_ 191 0x1d8: _060LSP__fsinhx_ 192 0x1e0: _060LSP__ftans_ 193 0x1e8: _060LSP__ftand_ 194 0x1f0: _060LSP__ftanx_ 195 0x1f8: _060LSP__ftanhs_ 196 0x200: _060LSP__ftanhd_ 197 0x208: _060LSP__ftanhx_ 198 0x210: _060LSP__ftentoxs_ 199 0x218: _060LSP__ftentoxd_ 200 0x220: _060LSP__ftentoxx_ 201 0x228: _060LSP__ftwotoxs_ 202 0x230: _060LSP__ftwotoxd_ 203 0x238: _060LSP__ftwotoxx_ 204 205 0x240: _060LSP__fabss_ 206 0x248: _060LSP__fabsd_ 207 0x250: _060LSP__fabsx_ 208 0x258: _060LSP__fadds_ 209 0x260: _060LSP__faddd_ 210 0x268: _060LSP__faddx_ 211 0x270: _060LSP__fdivs_ 212 0x278: _060LSP__fdivd_ 213 0x280: _060LSP__fdivx_ 214 0x288: _060LSP__fints_ 215 0x290: _060LSP__fintd_ 216 0x298: _060LSP__fintx_ 217 0x2a0: _060LSP__fintrzs_ 218 0x2a8: _060LSP__fintrzd_ 219 0x2b0: _060LSP__fintrzx_ 220 0x2b8: _060LSP__fmuls_ 221 0x2c0: _060LSP__fmuld_ 222 0x2c8: _060LSP__fmulx_ 223 0x2d0: _060LSP__fnegs_ 224 0x2d8: _060LSP__fnegd_ 225 0x2e0: _060LSP__fnegx_ 226 0x2e8: _060LSP__fsqrts_ 227 0x2f0: _060LSP__fsqrtd_ 228 0x2f8: _060LSP__fsqrtx_ 229 0x300: _060LSP__fsubs_ 230 0x308: _060LSP__fsubd_ 231 0x310: _060LSP__fsubx_
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.