summaryrefslogtreecommitdiff
path: root/ANDROID_3.4.5/arch/m68k/fpsp040/x_unsupp.S
diff options
context:
space:
mode:
Diffstat (limited to 'ANDROID_3.4.5/arch/m68k/fpsp040/x_unsupp.S')
-rw-r--r--ANDROID_3.4.5/arch/m68k/fpsp040/x_unsupp.S82
1 files changed, 0 insertions, 82 deletions
diff --git a/ANDROID_3.4.5/arch/m68k/fpsp040/x_unsupp.S b/ANDROID_3.4.5/arch/m68k/fpsp040/x_unsupp.S
deleted file mode 100644
index d7cf4620..00000000
--- a/ANDROID_3.4.5/arch/m68k/fpsp040/x_unsupp.S
+++ /dev/null
@@ -1,82 +0,0 @@
-|
-| x_unsupp.sa 3.3 7/1/91
-|
-| fpsp_unsupp --- FPSP handler for unsupported data type exception
-|
-| Trap vector #55 (See table 8-1 Mc68030 User's manual).
-| Invoked when the user program encounters a data format (packed) that
-| hardware does not support or a data type (denormalized numbers or un-
-| normalized numbers).
-| Normalizes denorms and unnorms, unpacks packed numbers then stores
-| them back into the machine to let the 040 finish the operation.
-|
-| Unsupp calls two routines:
-| 1. get_op - gets the operand(s)
-| 2. res_func - restore the function back into the 040 or
-| if fmove.p fpm,<ea> then pack source (fpm)
-| and store in users memory <ea>.
-|
-| Input: Long fsave stack frame
-|
-|
-
-| Copyright (C) Motorola, Inc. 1990
-| All Rights Reserved
-|
-| For details on the license for this file, please see the
-| file, README, in this same directory.
-
-X_UNSUPP: |idnt 2,1 | Motorola 040 Floating Point Software Package
-
- |section 8
-
-#include "fpsp.h"
-
- |xref get_op
- |xref res_func
- |xref gen_except
- |xref fpsp_fmt_error
-
- .global fpsp_unsupp
-fpsp_unsupp:
-|
- link %a6,#-LOCAL_SIZE
- fsave -(%a7)
- moveml %d0-%d1/%a0-%a1,USER_DA(%a6)
- fmovemx %fp0-%fp3,USER_FP0(%a6)
- fmoveml %fpcr/%fpsr/%fpiar,USER_FPCR(%a6)
-
-
- moveb (%a7),VER_TMP(%a6) |save version number
- moveb (%a7),%d0 |test for valid version num
- andib #0xf0,%d0 |test for $4x
- cmpib #VER_4,%d0 |must be $4x or exit
- bnel fpsp_fmt_error
-
- fmovel #0,%FPSR |clear all user status bits
- fmovel #0,%FPCR |clear all user control bits
-|
-| The following lines are used to ensure that the FPSR
-| exception byte and condition codes are clear before proceeding,
-| except in the case of fmove, which leaves the cc's intact.
-|
-unsupp_con:
- movel USER_FPSR(%a6),%d1
- btst #5,CMDREG1B(%a6) |looking for fmove out
- bne fmove_con
- andl #0xFF00FF,%d1 |clear all but aexcs and qbyte
- bras end_fix
-fmove_con:
- andl #0x0FFF40FF,%d1 |clear all but cc's, snan bit, aexcs, and qbyte
-end_fix:
- movel %d1,USER_FPSR(%a6)
-
- st UFLG_TMP(%a6) |set flag for unsupp data
-
- bsrl get_op |everything okay, go get operand(s)
- bsrl res_func |fix up stack frame so can restore it
- clrl -(%a7)
- moveb VER_TMP(%a6),(%a7) |move idle fmt word to top of stack
- bral gen_except
-|
- |end