Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/x86/math-emu/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  status_w.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*---------------------------------------------------------------------------+
 |  status_w.h                                                               |
 |                                                                           |
 | Copyright (C) 1992,1993                                                   |
 |                       W. Metzenthen, 22 Parker St, Ormond, Vic 3163,      |
 |                       Australia.  E-mail   billm@vaxc.cc.monash.edu.au    |
 |                                                                           |
 +---------------------------------------------------------------------------*/


#ifndef _STATUS_H_
#define _STATUS_H_

#include "fpu_emu.h"  /* for definition of PECULIAR_486 */

#ifdef __ASSEMBLER__
#define Const__(x) $##x
#else
#define Const__(x) x
#endif

#define SW_Backward     Const__(0x8000) /* backward compatibility */
#define SW_C3  Const__(0x4000) /* condition bit 3 */
#define SW_Top  Const__(0x3800) /* top of stack */
#define SW_Top_Shift  Const__(11) /* shift for top of stack bits */
#define SW_C2  Const__(0x0400) /* condition bit 2 */
#define SW_C1  Const__(0x0200) /* condition bit 1 */
#define SW_C0  Const__(0x0100) /* condition bit 0 */
#define SW_Summary      Const__(0x0080) /* exception summary */
#define SW_Stack_Fault Const__(0x0040) /* stack fault */
#define SW_Precision    Const__(0x0020) /* loss of precision */
#define SW_Underflow    Const__(0x0010) /* underflow */
#define SW_Overflow     Const__(0x0008) /* overflow */
#define SW_Zero_Div     Const__(0x0004) /* divide by zero */
#define SW_Denorm_Op    Const__(0x0002) /* denormalized operand */
#define SW_Invalid      Const__(0x0001) /* invalid operation */

#define SW_Exc_Mask     Const__(0x27f) /* Status word exception bit mask */

#ifndef __ASSEMBLER__

#define COMP_A_gt_B 1
#define COMP_A_eq_B 2
#define COMP_A_lt_B 3
#define COMP_No_Comp 4
#define COMP_Denormal   0x20
#define COMP_NaN 0x40
#define COMP_SNaN 0x80

#define status_word() \
  ((partial_status & ~SW_Top & 0xffff) | ((top << SW_Top_Shift) & SW_Top))
static inline void setcc(int cc)
{
 partial_status &= ~(SW_C0 | SW_C1 | SW_C2 | SW_C3);
 partial_status |= (cc) & (SW_C0 | SW_C1 | SW_C2 | SW_C3);
}

#ifdef PECULIAR_486
   /* Default, this conveys no information, but an 80486 does it. */
   /* Clear the SW_C1 bit, "other bits undefined". */
#  define clear_C1()  { partial_status &= ~SW_C1; }
else
#  define clear_C1()
#endif /* PECULIAR_486 */

#endif /* __ASSEMBLER__ */

#endif /* _STATUS_H_ */

Messung V0.5
C=93 H=97 G=94

¤ Dauer der Verarbeitung: 0.3 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.