~ubuntu-branches/debian/stretch/uswsusp/stretch

« back to all changes in this revision

Viewing changes to suspend-cvs20060928/vbetool/x86emu/x86emu/fpu_regs.h

  • Committer: Bazaar Package Importer
  • Author(s): Christian Perrier
  • Date: 2008-08-20 09:09:13 UTC
  • mfrom: (0.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20080820090913-0eahue1zo8egcxls
Tags: 0.8-1.1
* Non-maintainer upload to fix pending l10n issues.
* Remove extra and useless debian/po/ff/ directory
* Debconf translation updates:
  - Japanese. Closes: #489939
  - German. Closes: #493747
  - French. Closes: #493771
  - Romanian. Closes: #493772
  - Galician. Closes: #494050
  - Finnish. Closes: #494087
  - Italian. Closes: #494096
  - Basque. Closes: #494277
  - Basque. Closes: #494277
  - Czech. Closes: #494410
  - Swedish. Closes: #494412
  - Russian. Closes: #495412
  - Portuguese. Closes: #495451
  - Spanish. Closes: #495499
  - Slovak. Closes: #495516

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/****************************************************************************
2
 
*
3
 
*                                               Realmode X86 Emulator Library
4
 
*
5
 
*               Copyright (C) 1996-1999 SciTech Software, Inc.
6
 
*                                    Copyright (C) David Mosberger-Tang
7
 
*                                          Copyright (C) 1999 Egbert Eich
8
 
*
9
 
*  ========================================================================
10
 
*
11
 
*  Permission to use, copy, modify, distribute, and sell this software and
12
 
*  its documentation for any purpose is hereby granted without fee,
13
 
*  provided that the above copyright notice appear in all copies and that
14
 
*  both that copyright notice and this permission notice appear in
15
 
*  supporting documentation, and that the name of the authors not be used
16
 
*  in advertising or publicity pertaining to distribution of the software
17
 
*  without specific, written prior permission.  The authors makes no
18
 
*  representations about the suitability of this software for any purpose.
19
 
*  It is provided "as is" without express or implied warranty.
20
 
*
21
 
*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
22
 
*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
23
 
*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
24
 
*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
25
 
*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
26
 
*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
27
 
*  PERFORMANCE OF THIS SOFTWARE.
28
 
*
29
 
*  ========================================================================
30
 
*
31
 
* Language:             ANSI C
32
 
* Environment:  Any
33
 
* Developer:    Kendall Bennett
34
 
*
35
 
* Description:  Header file for FPU register definitions.
36
 
*
37
 
****************************************************************************/
38
 
 
39
 
#ifndef __X86EMU_FPU_REGS_H
40
 
#define __X86EMU_FPU_REGS_H
41
 
 
42
 
#ifdef X86_FPU_SUPPORT
43
 
 
44
 
/* Basic 8087 register can hold any of the following values: */
45
 
 
46
 
union x86_fpu_reg_u {
47
 
    s8                  tenbytes[10];
48
 
    double              dval;
49
 
    float               fval;
50
 
    s16                 sval;
51
 
    s32                 lval;
52
 
        };
53
 
 
54
 
struct x86_fpu_reg {
55
 
        union x86_fpu_reg_u reg;
56
 
        char                tag;
57
 
        };
58
 
 
59
 
/*
60
 
 * Since we are not going to worry about the problems of aliasing
61
 
 * registers, every time a register is modified, its result type is
62
 
 * set in the tag fields for that register.  If some operation
63
 
 * attempts to access the type in a way inconsistent with its current
64
 
 * storage format, then we flag the operation.  If common, we'll
65
 
 * attempt the conversion.
66
 
 */
67
 
 
68
 
#define  X86_FPU_VALID          0x80
69
 
#define  X86_FPU_REGTYP(r)      ((r) & 0x7F)
70
 
 
71
 
#define  X86_FPU_WORD           0x0
72
 
#define  X86_FPU_SHORT          0x1
73
 
#define  X86_FPU_LONG           0x2
74
 
#define  X86_FPU_FLOAT          0x3
75
 
#define  X86_FPU_DOUBLE         0x4
76
 
#define  X86_FPU_LDBL           0x5
77
 
#define  X86_FPU_BSD            0x6
78
 
 
79
 
#define  X86_FPU_STKTOP  0
80
 
 
81
 
struct x86_fpu_registers {
82
 
    struct x86_fpu_reg  x86_fpu_stack[8];
83
 
    int                 x86_fpu_flags;
84
 
    int                 x86_fpu_config;         /* rounding modes, etc. */
85
 
    short               x86_fpu_tos, x86_fpu_bos;
86
 
        };
87
 
 
88
 
/*
89
 
 * There are two versions of the following macro.
90
 
 *
91
 
 * One version is for opcode D9, for which there are more than 32
92
 
 * instructions encoded in the second byte of the opcode.
93
 
 *
94
 
 * The other version, deals with all the other 7 i87 opcodes, for
95
 
 * which there are only 32 strings needed to describe the
96
 
 * instructions.
97
 
 */
98
 
 
99
 
#endif /* X86_FPU_SUPPORT */
100
 
 
101
 
#ifdef DEBUG
102
 
# define DECODE_PRINTINSTR32(t,mod,rh,rl)       \
103
 
        DECODE_PRINTF(t[(mod<<3)+(rh)]);
104
 
# define DECODE_PRINTINSTR256(t,mod,rh,rl)      \
105
 
        DECODE_PRINTF(t[(mod<<6)+(rh<<3)+(rl)]);
106
 
#else
107
 
# define DECODE_PRINTINSTR32(t,mod,rh,rl)
108
 
# define DECODE_PRINTINSTR256(t,mod,rh,rl)
109
 
#endif
110
 
 
111
 
#endif /* __X86EMU_FPU_REGS_H */