#include "gdbcmd.h"
#include "floatformat.h"
#include "buildsym.h"
-#include "i387-nat.h"
+#include "i387-tdep.h"
+#include "i386-tdep.h"
#include "value.h"
#include "regcache.h"
#include "gdb_string.h"
{
if (regno < FP0_REGNUM)
supply_register (regno, (char *) &a_tss + regno_mapping[regno].tss_ofs);
- else if (regno <= LAST_FPU_CTRL_REGNUM)
- i387_supply_register (regno, (char *) &npx);
+ else if (i386_fp_regnum_p (regno) || i386_fpc_regnum_p (regno))
+ i387_supply_fsave (current_regcache, regno, &npx);
else
internal_error (__FILE__, __LINE__,
"Invalid register no. %d in fetch_register.", regno);
{
for (regno = 0; regno < FP0_REGNUM; regno++)
fetch_register (regno);
- i387_supply_fsave ((char *) &npx);
+ i387_supply_fsave (current_regcache, -1, &npx);
}
}
store_register (int regno)
{
if (regno < FP0_REGNUM)
- regcache_collect (regno, (void *) &a_tss + regno_mapping[regno].tss_ofs);
- else if (regno <= LAST_FPU_CTRL_REGNUM)
- i387_fill_fsave ((char *)&npx, regno);
+ regcache_collect (regno, (char *) &a_tss + regno_mapping[regno].tss_ofs);
+ else if (i386_fp_regnum_p (regno) || i386_fpc_regnum_p (regno))
+ i387_fill_fsave ((char *) &npx, regno);
else
internal_error (__FILE__, __LINE__,
"Invalid register no. %d in store_register.", regno);
{
redir_to_debugger (&child_cmd);
error ("Cannot redirect standard handles for program: %s.",
- strerror (errno));
+ safe_strerror (errno));
}
/* set the console device of the inferior to whatever mode
(raw or cooked) we found it last time */
{
redir_to_child (&child_cmd);
error ("Cannot redirect standard handles for debugger: %s.",
- strerror (errno));
+ safe_strerror (errno));
}
}
}
if (ldt_entry < 0
|| (ldt_entry & 4) == 0
|| (ldt_entry & 3) != (cpl & 3))
- error ("Invalid LDT entry 0x%03x.", ldt_entry);
+ error ("Invalid LDT entry 0x%03lx.", (unsigned long)ldt_entry);
}
}
if (ldt_entry >= 0)
{
if (ldt_entry > limit)
- error ("Invalid LDT entry %#x: outside valid limits [0..%#x]",
- ldt_entry, limit);
+ error ("Invalid LDT entry %#lx: outside valid limits [0..%#x]",
+ (unsigned long)ldt_entry, limit);
display_descriptor (ldt_descr.stype, base, ldt_entry / 8, 1);
}
{
gdt_entry = parse_and_eval_long (arg);
if (gdt_entry < 0 || (gdt_entry & 7) != 0)
- error ("Invalid GDT entry 0x%03x: not an integral multiple of 8.",
- gdt_entry);
+ error ("Invalid GDT entry 0x%03lx: not an integral multiple of 8.",
+ (unsigned long)gdt_entry);
}
}
if (gdt_entry >= 0)
{
if (gdt_entry > gdtr.limit)
- error ("Invalid GDT entry %#x: outside valid limits [0..%#x]",
- gdt_entry, gdtr.limit);
+ error ("Invalid GDT entry %#lx: outside valid limits [0..%#x]",
+ (unsigned long)gdt_entry, gdtr.limit);
display_descriptor (0, gdtr.base, gdt_entry / 8, 1);
}
{
idt_entry = parse_and_eval_long (arg);
if (idt_entry < 0)
- error ("Invalid (negative) IDT entry %d.", idt_entry);
+ error ("Invalid (negative) IDT entry %ld.", idt_entry);
}
}
if (idt_entry >= 0)
{
if (idt_entry > idtr.limit)
- error ("Invalid IDT entry %#x: outside valid limits [0..%#x]",
- idt_entry, idtr.limit);
+ error ("Invalid IDT entry %#lx: outside valid limits [0..%#x]",
+ (unsigned long)idt_entry, idtr.limit);
display_descriptor (1, idtr.base, idt_entry, 1);
}
static void
go32_pte (char *arg, int from_tty)
{
- long pde_idx = -1, i;
+ long pde_idx = -1L, i;
if (arg && *arg)
{
{
pde_idx = parse_and_eval_long (arg);
if (pde_idx < 0 || pde_idx >= 1024)
- error ("Entry %d is outside valid limits [0..1023].", pde_idx);
+ error ("Entry %ld is outside valid limits [0..1023].", pde_idx);
}
}
add_target (&go32_ops);
add_prefix_cmd ("dos", class_info, go32_info_dos_command,
- "Print information specific to DJGPP (a.k.a. MS-DOS) debugging.",
+ "Print information specific to DJGPP (aka MS-DOS) debugging.",
&info_dos_cmdlist, "info dos ", 0, &infolist);
add_cmd ("sysinfo", class_info, go32_sysinfo,