Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/LibreOffice/icon-themes/sukapura_dark/   (Office von Apache Version 25.8.3.2©) image not shown  

Quelle  x_unsupp.S   Sprache: Sparc

 
|
| 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

Messung V0.5
C=100 H=100 G=100

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.