18c2ecf20Sopenharmony_ci|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 28c2ecf20Sopenharmony_ci|MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP 38c2ecf20Sopenharmony_ci|M68000 Hi-Performance Microprocessor Division 48c2ecf20Sopenharmony_ci|M68060 Software Package 58c2ecf20Sopenharmony_ci|Production Release P1.00 -- October 10, 1994 68c2ecf20Sopenharmony_ci| 78c2ecf20Sopenharmony_ci|M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. 88c2ecf20Sopenharmony_ci| 98c2ecf20Sopenharmony_ci|THE SOFTWARE is provided on an "AS IS" basis and without warranty. 108c2ecf20Sopenharmony_ci|To the maximum extent permitted by applicable law, 118c2ecf20Sopenharmony_ci|MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, 128c2ecf20Sopenharmony_ci|INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE 138c2ecf20Sopenharmony_ci|and any warranty against infringement with regard to the SOFTWARE 148c2ecf20Sopenharmony_ci|(INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. 158c2ecf20Sopenharmony_ci| 168c2ecf20Sopenharmony_ci|To the maximum extent permitted by applicable law, 178c2ecf20Sopenharmony_ci|IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER 188c2ecf20Sopenharmony_ci|(INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, 198c2ecf20Sopenharmony_ci|BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) 208c2ecf20Sopenharmony_ci|ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE. 218c2ecf20Sopenharmony_ci|Motorola assumes no responsibility for the maintenance and support of the SOFTWARE. 228c2ecf20Sopenharmony_ci| 238c2ecf20Sopenharmony_ci|You are hereby granted a copyright license to use, modify, and distribute the SOFTWARE 248c2ecf20Sopenharmony_ci|so long as this entire notice is retained without alteration in any modified and/or 258c2ecf20Sopenharmony_ci|redistributed versions, and that such modified versions are clearly identified as such. 268c2ecf20Sopenharmony_ci|No licenses are granted by implication, estoppel or otherwise under any patents 278c2ecf20Sopenharmony_ci|or trademarks of Motorola, Inc. 288c2ecf20Sopenharmony_ci|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298c2ecf20Sopenharmony_ci| fskeleton.s 308c2ecf20Sopenharmony_ci| 318c2ecf20Sopenharmony_ci| This file contains: 328c2ecf20Sopenharmony_ci| (1) example "Call-out"s 338c2ecf20Sopenharmony_ci| (2) example package entry code 348c2ecf20Sopenharmony_ci| (3) example "Call-out" table 358c2ecf20Sopenharmony_ci| 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci#include <linux/linkage.h> 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci|################################ 408c2ecf20Sopenharmony_ci| (1) EXAMPLE CALL-OUTS # 418c2ecf20Sopenharmony_ci| # 428c2ecf20Sopenharmony_ci| _060_fpsp_done() # 438c2ecf20Sopenharmony_ci| _060_real_ovfl() # 448c2ecf20Sopenharmony_ci| _060_real_unfl() # 458c2ecf20Sopenharmony_ci| _060_real_operr() # 468c2ecf20Sopenharmony_ci| _060_real_snan() # 478c2ecf20Sopenharmony_ci| _060_real_dz() # 488c2ecf20Sopenharmony_ci| _060_real_inex() # 498c2ecf20Sopenharmony_ci| _060_real_bsun() # 508c2ecf20Sopenharmony_ci| _060_real_fline() # 518c2ecf20Sopenharmony_ci| _060_real_fpu_disabled() # 528c2ecf20Sopenharmony_ci| _060_real_trap() # 538c2ecf20Sopenharmony_ci|################################ 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci| 568c2ecf20Sopenharmony_ci| _060_fpsp_done(): 578c2ecf20Sopenharmony_ci| 588c2ecf20Sopenharmony_ci| This is the main exit point for the 68060 Floating-Point 598c2ecf20Sopenharmony_ci| Software Package. For a normal exit, all 060FPSP routines call this 608c2ecf20Sopenharmony_ci| routine. The operating system can do system dependent clean-up or 618c2ecf20Sopenharmony_ci| simply execute an "rte" as with the sample code below. 628c2ecf20Sopenharmony_ci| 638c2ecf20Sopenharmony_ci .global _060_fpsp_done 648c2ecf20Sopenharmony_ci_060_fpsp_done: 658c2ecf20Sopenharmony_ci bral _060_isp_done | do the same as isp_done 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci| 688c2ecf20Sopenharmony_ci| _060_real_ovfl(): 698c2ecf20Sopenharmony_ci| 708c2ecf20Sopenharmony_ci| This is the exit point for the 060FPSP when an enabled overflow exception 718c2ecf20Sopenharmony_ci| is present. The routine below should point to the operating system handler 728c2ecf20Sopenharmony_ci| for enabled overflow conditions. The exception stack frame is an overflow 738c2ecf20Sopenharmony_ci| stack frame. The FP state frame holds the EXCEPTIONAL OPERAND. 748c2ecf20Sopenharmony_ci| 758c2ecf20Sopenharmony_ci| The sample routine below simply clears the exception status bit and 768c2ecf20Sopenharmony_ci| does an "rte". 778c2ecf20Sopenharmony_ci| 788c2ecf20Sopenharmony_ci .global _060_real_ovfl 798c2ecf20Sopenharmony_ci_060_real_ovfl: 808c2ecf20Sopenharmony_ci fsave -(%sp) 818c2ecf20Sopenharmony_ci move.w #0x6000,0x2(%sp) 828c2ecf20Sopenharmony_ci frestore (%sp)+ 838c2ecf20Sopenharmony_ci bral trap | jump to trap handler 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ci| 878c2ecf20Sopenharmony_ci| _060_real_unfl(): 888c2ecf20Sopenharmony_ci| 898c2ecf20Sopenharmony_ci| This is the exit point for the 060FPSP when an enabled underflow exception 908c2ecf20Sopenharmony_ci| is present. The routine below should point to the operating system handler 918c2ecf20Sopenharmony_ci| for enabled underflow conditions. The exception stack frame is an underflow 928c2ecf20Sopenharmony_ci| stack frame. The FP state frame holds the EXCEPTIONAL OPERAND. 938c2ecf20Sopenharmony_ci| 948c2ecf20Sopenharmony_ci| The sample routine below simply clears the exception status bit and 958c2ecf20Sopenharmony_ci| does an "rte". 968c2ecf20Sopenharmony_ci| 978c2ecf20Sopenharmony_ci .global _060_real_unfl 988c2ecf20Sopenharmony_ci_060_real_unfl: 998c2ecf20Sopenharmony_ci fsave -(%sp) 1008c2ecf20Sopenharmony_ci move.w #0x6000,0x2(%sp) 1018c2ecf20Sopenharmony_ci frestore (%sp)+ 1028c2ecf20Sopenharmony_ci bral trap | jump to trap handler 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ci| 1058c2ecf20Sopenharmony_ci| _060_real_operr(): 1068c2ecf20Sopenharmony_ci| 1078c2ecf20Sopenharmony_ci| This is the exit point for the 060FPSP when an enabled operand error exception 1088c2ecf20Sopenharmony_ci| is present. The routine below should point to the operating system handler 1098c2ecf20Sopenharmony_ci| for enabled operand error exceptions. The exception stack frame is an operand error 1108c2ecf20Sopenharmony_ci| stack frame. The FP state frame holds the source operand of the faulting 1118c2ecf20Sopenharmony_ci| instruction. 1128c2ecf20Sopenharmony_ci| 1138c2ecf20Sopenharmony_ci| The sample routine below simply clears the exception status bit and 1148c2ecf20Sopenharmony_ci| does an "rte". 1158c2ecf20Sopenharmony_ci| 1168c2ecf20Sopenharmony_ci .global _060_real_operr 1178c2ecf20Sopenharmony_ci_060_real_operr: 1188c2ecf20Sopenharmony_ci fsave -(%sp) 1198c2ecf20Sopenharmony_ci move.w #0x6000,0x2(%sp) 1208c2ecf20Sopenharmony_ci frestore (%sp)+ 1218c2ecf20Sopenharmony_ci bral trap | jump to trap handler 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ci| 1248c2ecf20Sopenharmony_ci| _060_real_snan(): 1258c2ecf20Sopenharmony_ci| 1268c2ecf20Sopenharmony_ci| This is the exit point for the 060FPSP when an enabled signalling NaN exception 1278c2ecf20Sopenharmony_ci| is present. The routine below should point to the operating system handler 1288c2ecf20Sopenharmony_ci| for enabled signalling NaN exceptions. The exception stack frame is a signalling NaN 1298c2ecf20Sopenharmony_ci| stack frame. The FP state frame holds the source operand of the faulting 1308c2ecf20Sopenharmony_ci| instruction. 1318c2ecf20Sopenharmony_ci| 1328c2ecf20Sopenharmony_ci| The sample routine below simply clears the exception status bit and 1338c2ecf20Sopenharmony_ci| does an "rte". 1348c2ecf20Sopenharmony_ci| 1358c2ecf20Sopenharmony_ci .global _060_real_snan 1368c2ecf20Sopenharmony_ci_060_real_snan: 1378c2ecf20Sopenharmony_ci fsave -(%sp) 1388c2ecf20Sopenharmony_ci move.w #0x6000,0x2(%sp) 1398c2ecf20Sopenharmony_ci frestore (%sp)+ 1408c2ecf20Sopenharmony_ci bral trap | jump to trap handler 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ci| 1438c2ecf20Sopenharmony_ci| _060_real_dz(): 1448c2ecf20Sopenharmony_ci| 1458c2ecf20Sopenharmony_ci| This is the exit point for the 060FPSP when an enabled divide-by-zero exception 1468c2ecf20Sopenharmony_ci| is present. The routine below should point to the operating system handler 1478c2ecf20Sopenharmony_ci| for enabled divide-by-zero exceptions. The exception stack frame is a divide-by-zero 1488c2ecf20Sopenharmony_ci| stack frame. The FP state frame holds the source operand of the faulting 1498c2ecf20Sopenharmony_ci| instruction. 1508c2ecf20Sopenharmony_ci| 1518c2ecf20Sopenharmony_ci| The sample routine below simply clears the exception status bit and 1528c2ecf20Sopenharmony_ci| does an "rte". 1538c2ecf20Sopenharmony_ci| 1548c2ecf20Sopenharmony_ci .global _060_real_dz 1558c2ecf20Sopenharmony_ci_060_real_dz: 1568c2ecf20Sopenharmony_ci fsave -(%sp) 1578c2ecf20Sopenharmony_ci move.w #0x6000,0x2(%sp) 1588c2ecf20Sopenharmony_ci frestore (%sp)+ 1598c2ecf20Sopenharmony_ci bral trap | jump to trap handler 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ci| 1628c2ecf20Sopenharmony_ci| _060_real_inex(): 1638c2ecf20Sopenharmony_ci| 1648c2ecf20Sopenharmony_ci| This is the exit point for the 060FPSP when an enabled inexact exception 1658c2ecf20Sopenharmony_ci| is present. The routine below should point to the operating system handler 1668c2ecf20Sopenharmony_ci| for enabled inexact exceptions. The exception stack frame is an inexact 1678c2ecf20Sopenharmony_ci| stack frame. The FP state frame holds the source operand of the faulting 1688c2ecf20Sopenharmony_ci| instruction. 1698c2ecf20Sopenharmony_ci| 1708c2ecf20Sopenharmony_ci| The sample routine below simply clears the exception status bit and 1718c2ecf20Sopenharmony_ci| does an "rte". 1728c2ecf20Sopenharmony_ci| 1738c2ecf20Sopenharmony_ci .global _060_real_inex 1748c2ecf20Sopenharmony_ci_060_real_inex: 1758c2ecf20Sopenharmony_ci fsave -(%sp) 1768c2ecf20Sopenharmony_ci move.w #0x6000,0x2(%sp) 1778c2ecf20Sopenharmony_ci frestore (%sp)+ 1788c2ecf20Sopenharmony_ci bral trap | jump to trap handler 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ci| 1818c2ecf20Sopenharmony_ci| _060_real_bsun(): 1828c2ecf20Sopenharmony_ci| 1838c2ecf20Sopenharmony_ci| This is the exit point for the 060FPSP when an enabled bsun exception 1848c2ecf20Sopenharmony_ci| is present. The routine below should point to the operating system handler 1858c2ecf20Sopenharmony_ci| for enabled bsun exceptions. The exception stack frame is a bsun 1868c2ecf20Sopenharmony_ci| stack frame. 1878c2ecf20Sopenharmony_ci| 1888c2ecf20Sopenharmony_ci| The sample routine below clears the exception status bit, clears the NaN 1898c2ecf20Sopenharmony_ci| bit in the FPSR, and does an "rte". The instruction that caused the 1908c2ecf20Sopenharmony_ci| bsun will now be re-executed but with the NaN FPSR bit cleared. 1918c2ecf20Sopenharmony_ci| 1928c2ecf20Sopenharmony_ci .global _060_real_bsun 1938c2ecf20Sopenharmony_ci_060_real_bsun: 1948c2ecf20Sopenharmony_ci| fsave -(%sp) 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci fmove.l %fpsr,-(%sp) 1978c2ecf20Sopenharmony_ci andi.b #0xfe,(%sp) 1988c2ecf20Sopenharmony_ci fmove.l (%sp)+,%fpsr 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_ci bral trap | jump to trap handler 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ci| 2038c2ecf20Sopenharmony_ci| _060_real_fline(): 2048c2ecf20Sopenharmony_ci| 2058c2ecf20Sopenharmony_ci| This is the exit point for the 060FPSP when an F-Line Illegal exception is 2068c2ecf20Sopenharmony_ci| encountered. Three different types of exceptions can enter the F-Line exception 2078c2ecf20Sopenharmony_ci| vector number 11: FP Unimplemented Instructions, FP implemented instructions when 2088c2ecf20Sopenharmony_ci| the FPU is disabled, and F-Line Illegal instructions. The 060FPSP module 2098c2ecf20Sopenharmony_ci| _fpsp_fline() distinguishes between the three and acts appropriately. F-Line 2108c2ecf20Sopenharmony_ci| Illegals branch here. 2118c2ecf20Sopenharmony_ci| 2128c2ecf20Sopenharmony_ci .global _060_real_fline 2138c2ecf20Sopenharmony_ci_060_real_fline: 2148c2ecf20Sopenharmony_ci bral trap | jump to trap handler 2158c2ecf20Sopenharmony_ci 2168c2ecf20Sopenharmony_ci| 2178c2ecf20Sopenharmony_ci| _060_real_fpu_disabled(): 2188c2ecf20Sopenharmony_ci| 2198c2ecf20Sopenharmony_ci| This is the exit point for the 060FPSP when an FPU disabled exception is 2208c2ecf20Sopenharmony_ci| encountered. Three different types of exceptions can enter the F-Line exception 2218c2ecf20Sopenharmony_ci| vector number 11: FP Unimplemented Instructions, FP implemented instructions when 2228c2ecf20Sopenharmony_ci| the FPU is disabled, and F-Line Illegal instructions. The 060FPSP module 2238c2ecf20Sopenharmony_ci| _fpsp_fline() distinguishes between the three and acts appropriately. FPU disabled 2248c2ecf20Sopenharmony_ci| exceptions branch here. 2258c2ecf20Sopenharmony_ci| 2268c2ecf20Sopenharmony_ci| The sample code below enables the FPU, sets the PC field in the exception stack 2278c2ecf20Sopenharmony_ci| frame to the PC of the instruction causing the exception, and does an "rte". 2288c2ecf20Sopenharmony_ci| The execution of the instruction then proceeds with an enabled floating-point 2298c2ecf20Sopenharmony_ci| unit. 2308c2ecf20Sopenharmony_ci| 2318c2ecf20Sopenharmony_ci .global _060_real_fpu_disabled 2328c2ecf20Sopenharmony_ci_060_real_fpu_disabled: 2338c2ecf20Sopenharmony_ci move.l %d0,-(%sp) | enabled the fpu 2348c2ecf20Sopenharmony_ci .long 0x4E7A0808 |movec pcr,%d0 2358c2ecf20Sopenharmony_ci bclr #0x1,%d0 2368c2ecf20Sopenharmony_ci .long 0x4E7B0808 |movec %d0,pcr 2378c2ecf20Sopenharmony_ci move.l (%sp)+,%d0 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_ci move.l 0xc(%sp),0x2(%sp) | set "Current PC" 2408c2ecf20Sopenharmony_ci rte 2418c2ecf20Sopenharmony_ci 2428c2ecf20Sopenharmony_ci| 2438c2ecf20Sopenharmony_ci| _060_real_trap(): 2448c2ecf20Sopenharmony_ci| 2458c2ecf20Sopenharmony_ci| This is the exit point for the 060FPSP when an emulated "ftrapcc" instruction 2468c2ecf20Sopenharmony_ci| discovers that the trap condition is true and it should branch to the operating 2478c2ecf20Sopenharmony_ci| system handler for the trap exception vector number 7. 2488c2ecf20Sopenharmony_ci| 2498c2ecf20Sopenharmony_ci| The sample code below simply executes an "rte". 2508c2ecf20Sopenharmony_ci| 2518c2ecf20Sopenharmony_ci .global _060_real_trap 2528c2ecf20Sopenharmony_ci_060_real_trap: 2538c2ecf20Sopenharmony_ci bral trap | jump to trap handler 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_ci|############################################################################ 2568c2ecf20Sopenharmony_ci 2578c2ecf20Sopenharmony_ci|################################# 2588c2ecf20Sopenharmony_ci| (2) EXAMPLE PACKAGE ENTRY CODE # 2598c2ecf20Sopenharmony_ci|################################# 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_ci .global _060_fpsp_snan 2628c2ecf20Sopenharmony_ci_060_fpsp_snan: 2638c2ecf20Sopenharmony_ci bra.l _FP_CALL_TOP+0x80+0x00 2648c2ecf20Sopenharmony_ci 2658c2ecf20Sopenharmony_ci .global _060_fpsp_operr 2668c2ecf20Sopenharmony_ci_060_fpsp_operr: 2678c2ecf20Sopenharmony_ci bra.l _FP_CALL_TOP+0x80+0x08 2688c2ecf20Sopenharmony_ci 2698c2ecf20Sopenharmony_ci .global _060_fpsp_ovfl 2708c2ecf20Sopenharmony_ci_060_fpsp_ovfl: 2718c2ecf20Sopenharmony_ci bra.l _FP_CALL_TOP+0x80+0x10 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ci .global _060_fpsp_unfl 2748c2ecf20Sopenharmony_ci_060_fpsp_unfl: 2758c2ecf20Sopenharmony_ci bra.l _FP_CALL_TOP+0x80+0x18 2768c2ecf20Sopenharmony_ci 2778c2ecf20Sopenharmony_ci .global _060_fpsp_dz 2788c2ecf20Sopenharmony_ci_060_fpsp_dz: 2798c2ecf20Sopenharmony_ci bra.l _FP_CALL_TOP+0x80+0x20 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_ci .global _060_fpsp_inex 2828c2ecf20Sopenharmony_ci_060_fpsp_inex: 2838c2ecf20Sopenharmony_ci bra.l _FP_CALL_TOP+0x80+0x28 2848c2ecf20Sopenharmony_ci 2858c2ecf20Sopenharmony_ci .global _060_fpsp_fline 2868c2ecf20Sopenharmony_ci_060_fpsp_fline: 2878c2ecf20Sopenharmony_ci bra.l _FP_CALL_TOP+0x80+0x30 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ci .global _060_fpsp_unsupp 2908c2ecf20Sopenharmony_ci_060_fpsp_unsupp: 2918c2ecf20Sopenharmony_ci bra.l _FP_CALL_TOP+0x80+0x38 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ci .global _060_fpsp_effadd 2948c2ecf20Sopenharmony_ci_060_fpsp_effadd: 2958c2ecf20Sopenharmony_ci bra.l _FP_CALL_TOP+0x80+0x40 2968c2ecf20Sopenharmony_ci 2978c2ecf20Sopenharmony_ci|############################################################################ 2988c2ecf20Sopenharmony_ci 2998c2ecf20Sopenharmony_ci|############################### 3008c2ecf20Sopenharmony_ci| (3) EXAMPLE CALL-OUT SECTION # 3018c2ecf20Sopenharmony_ci|############################### 3028c2ecf20Sopenharmony_ci 3038c2ecf20Sopenharmony_ci| The size of this section MUST be 128 bytes!!! 3048c2ecf20Sopenharmony_ci 3058c2ecf20Sopenharmony_ci_FP_CALL_TOP: 3068c2ecf20Sopenharmony_ci .long _060_real_bsun - _FP_CALL_TOP 3078c2ecf20Sopenharmony_ci .long _060_real_snan - _FP_CALL_TOP 3088c2ecf20Sopenharmony_ci .long _060_real_operr - _FP_CALL_TOP 3098c2ecf20Sopenharmony_ci .long _060_real_ovfl - _FP_CALL_TOP 3108c2ecf20Sopenharmony_ci .long _060_real_unfl - _FP_CALL_TOP 3118c2ecf20Sopenharmony_ci .long _060_real_dz - _FP_CALL_TOP 3128c2ecf20Sopenharmony_ci .long _060_real_inex - _FP_CALL_TOP 3138c2ecf20Sopenharmony_ci .long _060_real_fline - _FP_CALL_TOP 3148c2ecf20Sopenharmony_ci .long _060_real_fpu_disabled - _FP_CALL_TOP 3158c2ecf20Sopenharmony_ci .long _060_real_trap - _FP_CALL_TOP 3168c2ecf20Sopenharmony_ci .long _060_real_trace - _FP_CALL_TOP 3178c2ecf20Sopenharmony_ci .long _060_real_access - _FP_CALL_TOP 3188c2ecf20Sopenharmony_ci .long _060_fpsp_done - _FP_CALL_TOP 3198c2ecf20Sopenharmony_ci 3208c2ecf20Sopenharmony_ci .long 0x00000000, 0x00000000, 0x00000000 3218c2ecf20Sopenharmony_ci 3228c2ecf20Sopenharmony_ci .long _060_imem_read - _FP_CALL_TOP 3238c2ecf20Sopenharmony_ci .long _060_dmem_read - _FP_CALL_TOP 3248c2ecf20Sopenharmony_ci .long _060_dmem_write - _FP_CALL_TOP 3258c2ecf20Sopenharmony_ci .long _060_imem_read_word - _FP_CALL_TOP 3268c2ecf20Sopenharmony_ci .long _060_imem_read_long - _FP_CALL_TOP 3278c2ecf20Sopenharmony_ci .long _060_dmem_read_byte - _FP_CALL_TOP 3288c2ecf20Sopenharmony_ci .long _060_dmem_read_word - _FP_CALL_TOP 3298c2ecf20Sopenharmony_ci .long _060_dmem_read_long - _FP_CALL_TOP 3308c2ecf20Sopenharmony_ci .long _060_dmem_write_byte - _FP_CALL_TOP 3318c2ecf20Sopenharmony_ci .long _060_dmem_write_word - _FP_CALL_TOP 3328c2ecf20Sopenharmony_ci .long _060_dmem_write_long - _FP_CALL_TOP 3338c2ecf20Sopenharmony_ci 3348c2ecf20Sopenharmony_ci .long 0x00000000 3358c2ecf20Sopenharmony_ci 3368c2ecf20Sopenharmony_ci .long 0x00000000, 0x00000000, 0x00000000, 0x00000000 3378c2ecf20Sopenharmony_ci 3388c2ecf20Sopenharmony_ci|############################################################################ 3398c2ecf20Sopenharmony_ci 3408c2ecf20Sopenharmony_ci| 060 FPSP KERNEL PACKAGE NEEDS TO GO HERE!!! 3418c2ecf20Sopenharmony_ci 3428c2ecf20Sopenharmony_ci#include "fpsp.sa" 343