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 | ||
ed504bdf | 48 | /* Fill register REGNUM in GDB's register cache with the appropriate |
f31e928c MK |
49 | value from *FSAVE. This function masks off any of the reserved |
50 | bits in *FSAVE. */ | |
51 | ||
ed504bdf | 52 | extern void i387_supply_fsave (const char *fsave, int regnum); |
b2450fc5 | 53 | |
f31e928c | 54 | /* Fill register REGNUM (if it is a floating-point register) in *FSAVE |
ed504bdf | 55 | with the value in GDB's register cache. If REGNUM is -1, do this |
b2450fc5 MK |
56 | for all registers. This function doesn't touch any of the reserved |
57 | bits in *FSAVE. */ | |
58 | ||
f31e928c | 59 | extern void i387_fill_fsave (char *fsave, int regnum); |
e2890f08 | 60 | |
ed504bdf MK |
61 | /* Fill register REGNUM in GDB's register cache with the appropriate |
62 | floating-point or SSE register value from *FXSAVE. This function | |
63 | masks off any of the reserved bits in *FXSAVE. */ | |
e2890f08 | 64 | |
ed504bdf | 65 | extern void i387_supply_fxsave (const char *fxsave, int regnum); |
e2890f08 | 66 | |
f31e928c | 67 | /* Fill register REGNUM (if it is a floating-point or SSE register) in |
ed504bdf | 68 | *FXSAVE with the value in GDB's register cache. If REGNUM is -1, do |
e2890f08 MK |
69 | this for all registers. This function doesn't touch any of the |
70 | reserved bits in *FXSAVE. */ | |
71 | ||
f31e928c | 72 | extern void i387_fill_fxsave (char *fxsave, int regnum); |
b2450fc5 | 73 | |
e750d25e | 74 | #endif /* i387-tdep.h */ |