Commit | Line | Data |
---|---|---|
e750d25e | 1 | /* Target-dependent code for the i387. |
f31e928c | 2 | Copyright 2000, 2001 Free Software Foundation, Inc. |
b2450fc5 MK |
3 | |
4 | This file is part of GDB. | |
5 | ||
6 | This program is free software; you can redistribute it and/or modify | |
7 | it under the terms of the GNU General Public License as published by | |
8 | the Free Software Foundation; either version 2 of the License, or | |
9 | (at your option) any later version. | |
10 | ||
11 | This program is distributed in the hope that it will be useful, | |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | GNU General Public License for more details. | |
15 | ||
16 | You should have received a copy of the GNU General Public License | |
17 | along with this program; if not, write to the Free Software | |
18 | Foundation, Inc., 59 Temple Place - Suite 330, | |
19 | Boston, MA 02111-1307, USA. */ | |
20 | ||
e750d25e JT |
21 | #ifndef I387_TDEP_H |
22 | #define I387_TDEP_H | |
b2450fc5 | 23 | |
da3331ec AC |
24 | struct gdbarch; |
25 | struct ui_file; | |
26 | struct frame_info; | |
d532c08f | 27 | struct type; |
da3331ec | 28 | |
61113f8b MK |
29 | /* Print out the i387 floating point state. */ |
30 | ||
31 | extern void i387_print_float_info (struct gdbarch *gdbarch, | |
32 | struct ui_file *file, | |
8e186fd6 AC |
33 | struct frame_info *frame, |
34 | const char *args); | |
61113f8b | 35 | |
d532c08f MK |
36 | /* Read a value of type TYPE from register REGNUM in frame FRAME, and |
37 | return its contents in TO. */ | |
38 | ||
39 | extern void i387_register_to_value (struct frame_info *frame, int regnum, | |
40 | struct type *type, void *to); | |
41 | ||
42 | /* Write the contents FROM of a value of type TYPE into register | |
43 | REGNUM in frame FRAME. */ | |
44 | ||
45 | extern void i387_value_to_register (struct frame_info *frame, int regnum, | |
46 | struct type *type, const void *from); | |
47 | ||
7daede3b | 48 | /* Fill register REGNUM in GDB's register array with the appropriate |
f31e928c MK |
49 | value from *FSAVE. This function masks off any of the reserved |
50 | bits in *FSAVE. */ | |
51 | ||
52 | extern void i387_supply_register (int regnum, char *fsave); | |
53 | ||
b2450fc5 MK |
54 | /* Fill GDB's register array with the floating-point register values |
55 | in *FSAVE. This function masks off any of the reserved | |
56 | bits in *FSAVE. */ | |
57 | ||
e2890f08 | 58 | extern void i387_supply_fsave (char *fsave); |
b2450fc5 | 59 | |
f31e928c MK |
60 | /* Fill register REGNUM (if it is a floating-point register) in *FSAVE |
61 | with the value in GDB's register array. If REGNUM is -1, do this | |
b2450fc5 MK |
62 | for all registers. This function doesn't touch any of the reserved |
63 | bits in *FSAVE. */ | |
64 | ||
f31e928c | 65 | extern void i387_fill_fsave (char *fsave, int regnum); |
e2890f08 MK |
66 | |
67 | /* Fill GDB's register array with the floating-point and SSE register | |
68 | values in *FXSAVE. This function masks off any of the reserved | |
69 | bits in *FXSAVE. */ | |
70 | ||
71 | extern void i387_supply_fxsave (char *fxsave); | |
72 | ||
f31e928c MK |
73 | /* Fill register REGNUM (if it is a floating-point or SSE register) in |
74 | *FXSAVE with the value in GDB's register array. If REGNUM is -1, do | |
e2890f08 MK |
75 | this for all registers. This function doesn't touch any of the |
76 | reserved bits in *FXSAVE. */ | |
77 | ||
f31e928c | 78 | extern void i387_fill_fxsave (char *fxsave, int regnum); |
b2450fc5 | 79 | |
e750d25e | 80 | #endif /* i387-tdep.h */ |