Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/arch/m68k/fpsp040/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 1 kB image not shown  

Quelle  x_unimp.S   Sprache: Sparc

 
|
| x_unimp.sa 3.3 7/1/91
|
| fpsp_unimp --- FPSP handler for unimplemented instruction
| exception.
|
| Invoked when the user program encounters a floating-point
| op-code that hardware does not support.  Trap vector# 11
| (See table 8-1 MC68030 User's Manual).
|
|
| Note: An fsave for an unimplemented inst. will create a short
| fsave stack.
|
|  Input: 1. Six word stack frame for unimplemented inst, four word
|            for illegal
|            (See table 8-7 MC68030 User's Manual).
|         2. Unimp (short) fsave state frame created here by fsave
|            instruction.
|
|
|  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_UNIMP: |idnt    2,1 | Motorola 040 Floating Point Software Package

 |section 8

#include "fpsp.h"

 |xref get_op
 |xref do_func
 |xref sto_res
 |xref gen_except
 |xref fpsp_fmt_error

 .global fpsp_unimp
 .global uni_2
fpsp_unimp:
 link  %a6,#-LOCAL_SIZE
 fsave  -(%a7)
uni_2:
 moveml  %d0-%d1/%a0-%a1,USER_DA(%a6)
 fmovemx %fp0-%fp3,USER_FP0(%a6)
 fmoveml %fpcr/%fpsr/%fpiar,USER_FPCR(%a6)
 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
|
| Temporary D25B Fix
| The following lines are used to ensure that the FPSR
| exception byte and condition codes are clear before proceeding
|
 movel  USER_FPSR(%a6),%d0
 andl  #0xFF00FF,%d0 |clear all but accrued exceptions
 movel  %d0,USER_FPSR(%a6)
 fmovel  #0,%FPSR |clear all user bits
 fmovel  #0,%FPCR |clear all user exceptions for FPSP

 clrb  UFLG_TMP(%a6) |clr flag for unsupp data

 bsrl  get_op  |go get operand(s)
 clrb  STORE_FLG(%a6)
 bsrl  do_func  |do the function
 fsave  -(%a7)  |capture possible exc state
 tstb  STORE_FLG(%a6)
 bnes  no_store |if STORE_FLG is set, no store
 bsrl  sto_res  |store the result in user space
no_store:
 bral  gen_except |post any exceptions and return

 |end

Messung V0.5
C=93 H=92 G=92

¤ Dauer der Verarbeitung: 0.2 Sekunden  ¤

*© 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.