mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 09:08:59 +00:00
2003-04-16 Andrew Cagney <cagney@redhat.com>
* NEWS: Mention that sparclet-*-* and sparclite-*-* have been made obsolete. * sparc-tdep.c: Obsolete SPARCLET and SPARCLITE code. * sparcl-stub.c: Obsolete file. * config/sparc/tm-sparclet.h: Obsolete file. * sparclet-stub.c: Obsolete file. * sparclet-rom.c: Obsolete file. * sparcl-tdep.c: Obsolete file. * config/sparc/tm-sparclite.h: Obsolete file. * config/sparc/sparclite.mt: Obsolete file. * config/sparc/sparclet.mt: Obsolete file. * configure.tgt: Make sparclet-*-*, sparclite-*-*, and sparc86x-*-* obsolete.
This commit is contained in:
389
gdb/sparc-tdep.c
389
gdb/sparc-tdep.c
@@ -66,11 +66,14 @@
|
||||
|
||||
|
||||
/* Does the target have Floating Point registers? */
|
||||
#if defined(TARGET_SPARCLET) || defined(TARGET_SPARCLITE)
|
||||
#define SPARC_HAS_FPU 0
|
||||
#else
|
||||
#define SPARC_HAS_FPU 1
|
||||
#if 0
|
||||
// OBSOLETE #if defined(TARGET_SPARCLET) || defined(TARGET_SPARCLITE)
|
||||
// OBSOLETE #define SPARC_HAS_FPU 0
|
||||
// OBSOLETE #else
|
||||
// OBSOLETE #define SPARC_HAS_FPU 1
|
||||
// OBSOLETE #endif
|
||||
#endif
|
||||
#define SPARC_HAS_FPU 1
|
||||
|
||||
/* Number of bytes devoted to Floating Point registers: */
|
||||
#if (GDB_TARGET_IS_SPARC64)
|
||||
@@ -104,7 +107,9 @@
|
||||
|
||||
struct gdbarch_tdep
|
||||
{
|
||||
int has_fpu;
|
||||
#if 0
|
||||
// OBSOLETE int has_fpu;
|
||||
#endif
|
||||
int fp_register_bytes;
|
||||
int y_regnum;
|
||||
int fp_max_regnum;
|
||||
@@ -134,11 +139,13 @@ extern int stop_after_trap;
|
||||
int deferred_stores = 0; /* Accumulated stores we want to do eventually. */
|
||||
|
||||
|
||||
/* Some machines, such as Fujitsu SPARClite 86x, have a bi-endian mode
|
||||
where instructions are big-endian and data are little-endian.
|
||||
This flag is set when we detect that the target is of this type. */
|
||||
|
||||
int bi_endian = 0;
|
||||
#if 0
|
||||
// OBSOLETE /* Some machines, such as Fujitsu SPARClite 86x, have a bi-endian mode
|
||||
// OBSOLETE where instructions are big-endian and data are little-endian.
|
||||
// OBSOLETE This flag is set when we detect that the target is of this type. */
|
||||
// OBSOLETE
|
||||
// OBSOLETE int bi_endian = 0;
|
||||
#endif
|
||||
|
||||
|
||||
/* Fetch a single instruction. Even on bi-endian machines
|
||||
@@ -2174,21 +2181,23 @@ sparc_do_registers_info (int regnum, int all)
|
||||
regnum, all);
|
||||
}
|
||||
|
||||
static void
|
||||
sparclet_print_registers_info (struct gdbarch *gdbarch,
|
||||
struct ui_file *file,
|
||||
struct frame_info *frame,
|
||||
int regnum, int print_all)
|
||||
{
|
||||
sparc_print_registers (gdbarch, file, frame, regnum, print_all, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
sparclet_do_registers_info (int regnum, int all)
|
||||
{
|
||||
sparclet_print_registers_info (current_gdbarch, gdb_stdout,
|
||||
deprecated_selected_frame, regnum, all);
|
||||
}
|
||||
#if 0
|
||||
// OBSOLETE static void
|
||||
// OBSOLETE sparclet_print_registers_info (struct gdbarch *gdbarch,
|
||||
// OBSOLETE struct ui_file *file,
|
||||
// OBSOLETE struct frame_info *frame,
|
||||
// OBSOLETE int regnum, int print_all)
|
||||
// OBSOLETE {
|
||||
// OBSOLETE sparc_print_registers (gdbarch, file, frame, regnum, print_all, NULL);
|
||||
// OBSOLETE }
|
||||
// OBSOLETE
|
||||
// OBSOLETE void
|
||||
// OBSOLETE sparclet_do_registers_info (int regnum, int all)
|
||||
// OBSOLETE {
|
||||
// OBSOLETE sparclet_print_registers_info (current_gdbarch, gdb_stdout,
|
||||
// OBSOLETE deprecated_selected_frame, regnum, all);
|
||||
// OBSOLETE }
|
||||
#endif
|
||||
|
||||
|
||||
int
|
||||
@@ -2324,13 +2333,15 @@ sparc_store_return_value (struct type *type, char *valbuf)
|
||||
TYPE_LENGTH (type));
|
||||
}
|
||||
|
||||
extern void
|
||||
sparclet_store_return_value (struct type *type, char *valbuf)
|
||||
{
|
||||
/* Other values are returned in register %o0. */
|
||||
deprecated_write_register_bytes (REGISTER_BYTE (O0_REGNUM), valbuf,
|
||||
TYPE_LENGTH (type));
|
||||
}
|
||||
#if 0
|
||||
// OBSOLETE extern void
|
||||
// OBSOLETE sparclet_store_return_value (struct type *type, char *valbuf)
|
||||
// OBSOLETE {
|
||||
// OBSOLETE /* Other values are returned in register %o0. */
|
||||
// OBSOLETE deprecated_write_register_bytes (REGISTER_BYTE (O0_REGNUM), valbuf,
|
||||
// OBSOLETE TYPE_LENGTH (type));
|
||||
// OBSOLETE }
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef CALL_DUMMY_CALL_OFFSET
|
||||
@@ -2396,40 +2407,43 @@ sparc_fix_call_dummy (char *dummy, CORE_ADDR pc, CORE_ADDR fun,
|
||||
}
|
||||
}
|
||||
|
||||
/* If this is a bi-endian target, GDB has written the call dummy
|
||||
in little-endian order. We must byte-swap it back to big-endian. */
|
||||
if (bi_endian)
|
||||
{
|
||||
for (i = 0; i < CALL_DUMMY_LENGTH; i += 4)
|
||||
{
|
||||
char tmp = dummy[i];
|
||||
dummy[i] = dummy[i + 3];
|
||||
dummy[i + 3] = tmp;
|
||||
tmp = dummy[i + 1];
|
||||
dummy[i + 1] = dummy[i + 2];
|
||||
dummy[i + 2] = tmp;
|
||||
}
|
||||
}
|
||||
#if 0
|
||||
// OBSOLETE /* If this is a bi-endian target, GDB has written the call dummy
|
||||
// OBSOLETE in little-endian order. We must byte-swap it back to big-endian. */
|
||||
// OBSOLETE if (bi_endian)
|
||||
// OBSOLETE {
|
||||
// OBSOLETE for (i = 0; i < CALL_DUMMY_LENGTH; i += 4)
|
||||
// OBSOLETE {
|
||||
// OBSOLETE char tmp = dummy[i];
|
||||
// OBSOLETE dummy[i] = dummy[i + 3];
|
||||
// OBSOLETE dummy[i + 3] = tmp;
|
||||
// OBSOLETE tmp = dummy[i + 1];
|
||||
// OBSOLETE dummy[i + 1] = dummy[i + 2];
|
||||
// OBSOLETE dummy[i + 2] = tmp;
|
||||
// OBSOLETE }
|
||||
// OBSOLETE }
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/* Set target byte order based on machine type. */
|
||||
|
||||
static int
|
||||
sparc_target_architecture_hook (const bfd_arch_info_type *ap)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
if (ap->mach == bfd_mach_sparc_sparclite_le)
|
||||
{
|
||||
target_byte_order = BFD_ENDIAN_LITTLE;
|
||||
bi_endian = 1;
|
||||
}
|
||||
else
|
||||
bi_endian = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
#if 0
|
||||
// OBSOLETE /* Set target byte order based on machine type. */
|
||||
// OBSOLETE
|
||||
// OBSOLETE static int
|
||||
// OBSOLETE sparc_target_architecture_hook (const bfd_arch_info_type *ap)
|
||||
// OBSOLETE {
|
||||
// OBSOLETE int i, j;
|
||||
// OBSOLETE
|
||||
// OBSOLETE if (ap->mach == bfd_mach_sparc_sparclite_le)
|
||||
// OBSOLETE {
|
||||
// OBSOLETE target_byte_order = BFD_ENDIAN_LITTLE;
|
||||
// OBSOLETE bi_endian = 1;
|
||||
// OBSOLETE }
|
||||
// OBSOLETE else
|
||||
// OBSOLETE bi_endian = 0;
|
||||
// OBSOLETE return 1;
|
||||
// OBSOLETE }
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Module "constructor" function.
|
||||
@@ -2447,7 +2461,7 @@ _initialize_sparc_tdep (void)
|
||||
|
||||
tm_print_insn = gdb_print_insn_sparc;
|
||||
tm_print_insn_info.mach = TM_PRINT_INSN_MACH; /* Selects sparc/sparclite */
|
||||
target_architecture_hook = sparc_target_architecture_hook;
|
||||
/* OBSOLETE target_architecture_hook = sparc_target_architecture_hook; */
|
||||
}
|
||||
|
||||
/* Compensate for stack bias. Note that we currently don't handle
|
||||
@@ -2677,18 +2691,19 @@ sparc64_extract_return_value (struct type *type, char *regbuf, char *valbuf)
|
||||
sp64_extract_return_value (type, regbuf, valbuf, 0);
|
||||
}
|
||||
|
||||
extern void
|
||||
sparclet_extract_return_value (struct type *type,
|
||||
char *regbuf,
|
||||
char *valbuf)
|
||||
{
|
||||
regbuf += REGISTER_RAW_SIZE (O0_REGNUM) * 8;
|
||||
if (TYPE_LENGTH (type) < REGISTER_RAW_SIZE (O0_REGNUM))
|
||||
regbuf += REGISTER_RAW_SIZE (O0_REGNUM) - TYPE_LENGTH (type);
|
||||
|
||||
memcpy ((void *) valbuf, regbuf, TYPE_LENGTH (type));
|
||||
}
|
||||
|
||||
#if 0
|
||||
// OBSOLETE extern void
|
||||
// OBSOLETE sparclet_extract_return_value (struct type *type,
|
||||
// OBSOLETE char *regbuf,
|
||||
// OBSOLETE char *valbuf)
|
||||
// OBSOLETE {
|
||||
// OBSOLETE regbuf += REGISTER_RAW_SIZE (O0_REGNUM) * 8;
|
||||
// OBSOLETE if (TYPE_LENGTH (type) < REGISTER_RAW_SIZE (O0_REGNUM))
|
||||
// OBSOLETE regbuf += REGISTER_RAW_SIZE (O0_REGNUM) - TYPE_LENGTH (type);
|
||||
// OBSOLETE
|
||||
// OBSOLETE memcpy ((void *) valbuf, regbuf, TYPE_LENGTH (type));
|
||||
// OBSOLETE }
|
||||
#endif
|
||||
|
||||
extern CORE_ADDR
|
||||
sparc32_stack_align (CORE_ADDR addr)
|
||||
@@ -2769,66 +2784,70 @@ sparc64_register_name (int regno)
|
||||
return register_names[regno];
|
||||
}
|
||||
|
||||
static const char *
|
||||
sparclite_register_name (int regno)
|
||||
{
|
||||
static char *register_names[] =
|
||||
{ "g0", "g1", "g2", "g3", "g4", "g5", "g6", "g7",
|
||||
"o0", "o1", "o2", "o3", "o4", "o5", "sp", "o7",
|
||||
"l0", "l1", "l2", "l3", "l4", "l5", "l6", "l7",
|
||||
"i0", "i1", "i2", "i3", "i4", "i5", "fp", "i7",
|
||||
|
||||
"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7",
|
||||
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15",
|
||||
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23",
|
||||
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31",
|
||||
|
||||
"y", "psr", "wim", "tbr", "pc", "npc", "fpsr", "cpsr",
|
||||
"dia1", "dia2", "dda1", "dda2", "ddv1", "ddv2", "dcr", "dsr"
|
||||
};
|
||||
|
||||
if (regno < 0 ||
|
||||
regno >= (sizeof (register_names) / sizeof (register_names[0])))
|
||||
return NULL;
|
||||
else
|
||||
return register_names[regno];
|
||||
}
|
||||
|
||||
static const char *
|
||||
sparclet_register_name (int regno)
|
||||
{
|
||||
static char *register_names[] =
|
||||
{ "g0", "g1", "g2", "g3", "g4", "g5", "g6", "g7",
|
||||
"o0", "o1", "o2", "o3", "o4", "o5", "sp", "o7",
|
||||
"l0", "l1", "l2", "l3", "l4", "l5", "l6", "l7",
|
||||
"i0", "i1", "i2", "i3", "i4", "i5", "fp", "i7",
|
||||
|
||||
"", "", "", "", "", "", "", "", /* no floating point registers */
|
||||
"", "", "", "", "", "", "", "",
|
||||
"", "", "", "", "", "", "", "",
|
||||
"", "", "", "", "", "", "", "",
|
||||
|
||||
"y", "psr", "wim", "tbr", "pc", "npc", "", "", /* no FPSR or CPSR */
|
||||
"ccsr", "ccpr", "cccrcr", "ccor", "ccobr", "ccibr", "ccir", "",
|
||||
|
||||
/* ASR15 ASR19 (don't display them) */
|
||||
"asr1", "", "asr17", "asr18", "", "asr20", "asr21", "asr22"
|
||||
/* None of the rest get displayed */
|
||||
#if 0
|
||||
"awr0", "awr1", "awr2", "awr3", "awr4", "awr5", "awr6", "awr7",
|
||||
"awr8", "awr9", "awr10", "awr11", "awr12", "awr13", "awr14", "awr15",
|
||||
"awr16", "awr17", "awr18", "awr19", "awr20", "awr21", "awr22", "awr23",
|
||||
"awr24", "awr25", "awr26", "awr27", "awr28", "awr29", "awr30", "awr31",
|
||||
"apsr"
|
||||
#endif /* 0 */
|
||||
};
|
||||
// OBSOLETE static const char *
|
||||
// OBSOLETE sparclite_register_name (int regno)
|
||||
// OBSOLETE {
|
||||
// OBSOLETE static char *register_names[] =
|
||||
// OBSOLETE { "g0", "g1", "g2", "g3", "g4", "g5", "g6", "g7",
|
||||
// OBSOLETE "o0", "o1", "o2", "o3", "o4", "o5", "sp", "o7",
|
||||
// OBSOLETE "l0", "l1", "l2", "l3", "l4", "l5", "l6", "l7",
|
||||
// OBSOLETE "i0", "i1", "i2", "i3", "i4", "i5", "fp", "i7",
|
||||
// OBSOLETE
|
||||
// OBSOLETE "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7",
|
||||
// OBSOLETE "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15",
|
||||
// OBSOLETE "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23",
|
||||
// OBSOLETE "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31",
|
||||
// OBSOLETE
|
||||
// OBSOLETE "y", "psr", "wim", "tbr", "pc", "npc", "fpsr", "cpsr",
|
||||
// OBSOLETE "dia1", "dia2", "dda1", "dda2", "ddv1", "ddv2", "dcr", "dsr"
|
||||
// OBSOLETE };
|
||||
// OBSOLETE
|
||||
// OBSOLETE if (regno < 0 ||
|
||||
// OBSOLETE regno >= (sizeof (register_names) / sizeof (register_names[0])))
|
||||
// OBSOLETE return NULL;
|
||||
// OBSOLETE else
|
||||
// OBSOLETE return register_names[regno];
|
||||
// OBSOLETE }
|
||||
#endif
|
||||
|
||||
if (regno < 0 ||
|
||||
regno >= (sizeof (register_names) / sizeof (register_names[0])))
|
||||
return NULL;
|
||||
else
|
||||
return register_names[regno];
|
||||
}
|
||||
#if 0
|
||||
// OBSOLETE static const char *
|
||||
// OBSOLETE sparclet_register_name (int regno)
|
||||
// OBSOLETE {
|
||||
// OBSOLETE static char *register_names[] =
|
||||
// OBSOLETE { "g0", "g1", "g2", "g3", "g4", "g5", "g6", "g7",
|
||||
// OBSOLETE "o0", "o1", "o2", "o3", "o4", "o5", "sp", "o7",
|
||||
// OBSOLETE "l0", "l1", "l2", "l3", "l4", "l5", "l6", "l7",
|
||||
// OBSOLETE "i0", "i1", "i2", "i3", "i4", "i5", "fp", "i7",
|
||||
// OBSOLETE
|
||||
// OBSOLETE "", "", "", "", "", "", "", "", /* no floating point registers */
|
||||
// OBSOLETE "", "", "", "", "", "", "", "",
|
||||
// OBSOLETE "", "", "", "", "", "", "", "",
|
||||
// OBSOLETE "", "", "", "", "", "", "", "",
|
||||
// OBSOLETE
|
||||
// OBSOLETE "y", "psr", "wim", "tbr", "pc", "npc", "", "", /* no FPSR or CPSR */
|
||||
// OBSOLETE "ccsr", "ccpr", "cccrcr", "ccor", "ccobr", "ccibr", "ccir", "",
|
||||
// OBSOLETE
|
||||
// OBSOLETE /* ASR15 ASR19 (don't display them) */
|
||||
// OBSOLETE "asr1", "", "asr17", "asr18", "", "asr20", "asr21", "asr22"
|
||||
// OBSOLETE /* None of the rest get displayed */
|
||||
// OBSOLETE #if 0
|
||||
// OBSOLETE "awr0", "awr1", "awr2", "awr3", "awr4", "awr5", "awr6", "awr7",
|
||||
// OBSOLETE "awr8", "awr9", "awr10", "awr11", "awr12", "awr13", "awr14", "awr15",
|
||||
// OBSOLETE "awr16", "awr17", "awr18", "awr19", "awr20", "awr21", "awr22", "awr23",
|
||||
// OBSOLETE "awr24", "awr25", "awr26", "awr27", "awr28", "awr29", "awr30", "awr31",
|
||||
// OBSOLETE "apsr"
|
||||
// OBSOLETE #endif /* 0 */
|
||||
// OBSOLETE };
|
||||
// OBSOLETE
|
||||
// OBSOLETE if (regno < 0 ||
|
||||
// OBSOLETE regno >= (sizeof (register_names) / sizeof (register_names[0])))
|
||||
// OBSOLETE return NULL;
|
||||
// OBSOLETE else
|
||||
// OBSOLETE return register_names[regno];
|
||||
// OBSOLETE }
|
||||
#endif
|
||||
|
||||
CORE_ADDR
|
||||
sparc_push_return_address (CORE_ADDR pc_unused, CORE_ADDR sp)
|
||||
@@ -3184,11 +3203,15 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
switch (info.bfd_arch_info->mach)
|
||||
{
|
||||
case bfd_mach_sparc:
|
||||
case bfd_mach_sparc_sparclet:
|
||||
case bfd_mach_sparc_sparclite:
|
||||
#if 0
|
||||
// OBSOLETE case bfd_mach_sparc_sparclet:
|
||||
// OBSOLETE case bfd_mach_sparc_sparclite:
|
||||
#endif
|
||||
case bfd_mach_sparc_v8plus:
|
||||
case bfd_mach_sparc_v8plusa:
|
||||
case bfd_mach_sparc_sparclite_le:
|
||||
#if 0
|
||||
// OBSOLETE case bfd_mach_sparc_sparclite_le:
|
||||
#endif
|
||||
/* 32-bit machine types: */
|
||||
|
||||
#ifdef SPARC32_CALL_DUMMY_ON_STACK
|
||||
@@ -3348,30 +3371,36 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
set_gdbarch_register_bytes (gdbarch, 32*4 + 32*4 + 8*4);
|
||||
set_gdbarch_register_name (gdbarch, sparc32_register_name);
|
||||
set_gdbarch_deprecated_store_return_value (gdbarch, sparc_store_return_value);
|
||||
tdep->has_fpu = 1; /* (all but sparclet and sparclite) */
|
||||
#if 0
|
||||
// OBSOLETE tdep->has_fpu = 1; /* (all but sparclet and sparclite) */
|
||||
#endif
|
||||
tdep->fp_register_bytes = 32 * 4;
|
||||
tdep->print_insn_mach = bfd_mach_sparc;
|
||||
break;
|
||||
case bfd_mach_sparc_sparclet:
|
||||
set_gdbarch_deprecated_extract_return_value (gdbarch, sparclet_extract_return_value);
|
||||
set_gdbarch_num_regs (gdbarch, 32 + 32 + 8 + 8 + 8);
|
||||
set_gdbarch_register_bytes (gdbarch, 32*4 + 32*4 + 8*4 + 8*4 + 8*4);
|
||||
set_gdbarch_register_name (gdbarch, sparclet_register_name);
|
||||
set_gdbarch_deprecated_store_return_value (gdbarch, sparclet_store_return_value);
|
||||
tdep->has_fpu = 0; /* (all but sparclet and sparclite) */
|
||||
tdep->fp_register_bytes = 0;
|
||||
tdep->print_insn_mach = bfd_mach_sparc_sparclet;
|
||||
break;
|
||||
case bfd_mach_sparc_sparclite:
|
||||
set_gdbarch_deprecated_extract_return_value (gdbarch, sparc32_extract_return_value);
|
||||
set_gdbarch_num_regs (gdbarch, 80);
|
||||
set_gdbarch_register_bytes (gdbarch, 32*4 + 32*4 + 8*4 + 8*4);
|
||||
set_gdbarch_register_name (gdbarch, sparclite_register_name);
|
||||
set_gdbarch_deprecated_store_return_value (gdbarch, sparc_store_return_value);
|
||||
tdep->has_fpu = 0; /* (all but sparclet and sparclite) */
|
||||
tdep->fp_register_bytes = 0;
|
||||
tdep->print_insn_mach = bfd_mach_sparc_sparclite;
|
||||
break;
|
||||
#if 0
|
||||
// OBSOLETE case bfd_mach_sparc_sparclet:
|
||||
// OBSOLETE set_gdbarch_deprecated_extract_return_value (gdbarch, sparclet_extract_return_value);
|
||||
// OBSOLETE set_gdbarch_num_regs (gdbarch, 32 + 32 + 8 + 8 + 8);
|
||||
// OBSOLETE set_gdbarch_register_bytes (gdbarch, 32*4 + 32*4 + 8*4 + 8*4 + 8*4);
|
||||
// OBSOLETE set_gdbarch_register_name (gdbarch, sparclet_register_name);
|
||||
// OBSOLETE set_gdbarch_deprecated_store_return_value (gdbarch, sparclet_store_return_value);
|
||||
// OBSOLETE tdep->has_fpu = 0; /* (all but sparclet and sparclite) */
|
||||
// OBSOLETE tdep->fp_register_bytes = 0;
|
||||
// OBSOLETE tdep->print_insn_mach = bfd_mach_sparc_sparclet;
|
||||
// OBSOLETE break;
|
||||
#endif
|
||||
#if 0
|
||||
// OBSOLETE case bfd_mach_sparc_sparclite:
|
||||
// OBSOLETE set_gdbarch_deprecated_extract_return_value (gdbarch, sparc32_extract_return_value);
|
||||
// OBSOLETE set_gdbarch_num_regs (gdbarch, 80);
|
||||
// OBSOLETE set_gdbarch_register_bytes (gdbarch, 32*4 + 32*4 + 8*4 + 8*4);
|
||||
// OBSOLETE set_gdbarch_register_name (gdbarch, sparclite_register_name);
|
||||
// OBSOLETE set_gdbarch_deprecated_store_return_value (gdbarch, sparc_store_return_value);
|
||||
// OBSOLETE tdep->has_fpu = 0; /* (all but sparclet and sparclite) */
|
||||
// OBSOLETE tdep->fp_register_bytes = 0;
|
||||
// OBSOLETE tdep->print_insn_mach = bfd_mach_sparc_sparclite;
|
||||
// OBSOLETE break;
|
||||
#endif
|
||||
case bfd_mach_sparc_v8plus:
|
||||
set_gdbarch_deprecated_extract_return_value (gdbarch, sparc32_extract_return_value);
|
||||
set_gdbarch_num_regs (gdbarch, 72);
|
||||
@@ -3380,7 +3409,9 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
set_gdbarch_deprecated_store_return_value (gdbarch, sparc_store_return_value);
|
||||
tdep->print_insn_mach = bfd_mach_sparc;
|
||||
tdep->fp_register_bytes = 32 * 4;
|
||||
tdep->has_fpu = 1; /* (all but sparclet and sparclite) */
|
||||
#if 0
|
||||
// OBSOLETE tdep->has_fpu = 1; /* (all but sparclet and sparclite) */
|
||||
#endif
|
||||
break;
|
||||
case bfd_mach_sparc_v8plusa:
|
||||
set_gdbarch_deprecated_extract_return_value (gdbarch, sparc32_extract_return_value);
|
||||
@@ -3388,27 +3419,33 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
set_gdbarch_register_bytes (gdbarch, 32*4 + 32*4 + 8*4);
|
||||
set_gdbarch_register_name (gdbarch, sparc32_register_name);
|
||||
set_gdbarch_deprecated_store_return_value (gdbarch, sparc_store_return_value);
|
||||
tdep->has_fpu = 1; /* (all but sparclet and sparclite) */
|
||||
#if 0
|
||||
// OBSOLETE tdep->has_fpu = 1; /* (all but sparclet and sparclite) */
|
||||
#endif
|
||||
tdep->fp_register_bytes = 32 * 4;
|
||||
tdep->print_insn_mach = bfd_mach_sparc;
|
||||
break;
|
||||
case bfd_mach_sparc_sparclite_le:
|
||||
set_gdbarch_deprecated_extract_return_value (gdbarch, sparc32_extract_return_value);
|
||||
set_gdbarch_num_regs (gdbarch, 80);
|
||||
set_gdbarch_register_bytes (gdbarch, 32*4 + 32*4 + 8*4 + 8*4);
|
||||
set_gdbarch_register_name (gdbarch, sparclite_register_name);
|
||||
set_gdbarch_deprecated_store_return_value (gdbarch, sparc_store_return_value);
|
||||
tdep->has_fpu = 0; /* (all but sparclet and sparclite) */
|
||||
tdep->fp_register_bytes = 0;
|
||||
tdep->print_insn_mach = bfd_mach_sparc_sparclite;
|
||||
break;
|
||||
#if 0
|
||||
// OBSOLETE case bfd_mach_sparc_sparclite_le:
|
||||
// OBSOLETE set_gdbarch_deprecated_extract_return_value (gdbarch, sparc32_extract_return_value);
|
||||
// OBSOLETE set_gdbarch_num_regs (gdbarch, 80);
|
||||
// OBSOLETE set_gdbarch_register_bytes (gdbarch, 32*4 + 32*4 + 8*4 + 8*4);
|
||||
// OBSOLETE set_gdbarch_register_name (gdbarch, sparclite_register_name);
|
||||
// OBSOLETE set_gdbarch_deprecated_store_return_value (gdbarch, sparc_store_return_value);
|
||||
// OBSOLETE tdep->has_fpu = 0; /* (all but sparclet and sparclite) */
|
||||
// OBSOLETE tdep->fp_register_bytes = 0;
|
||||
// OBSOLETE tdep->print_insn_mach = bfd_mach_sparc_sparclite;
|
||||
// OBSOLETE break;
|
||||
#endif
|
||||
case bfd_mach_sparc_v9:
|
||||
set_gdbarch_deprecated_extract_return_value (gdbarch, sparc64_extract_return_value);
|
||||
set_gdbarch_num_regs (gdbarch, 125);
|
||||
set_gdbarch_register_bytes (gdbarch, 32*8 + 32*8 + 45*8);
|
||||
set_gdbarch_register_name (gdbarch, sparc64_register_name);
|
||||
set_gdbarch_deprecated_store_return_value (gdbarch, sparc_store_return_value);
|
||||
tdep->has_fpu = 1; /* (all but sparclet and sparclite) */
|
||||
#if 0
|
||||
// OBSOLETE tdep->has_fpu = 1; /* (all but sparclet and sparclite) */
|
||||
#endif
|
||||
tdep->fp_register_bytes = 64 * 4;
|
||||
tdep->print_insn_mach = bfd_mach_sparc_v9a;
|
||||
break;
|
||||
@@ -3418,7 +3455,9 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
set_gdbarch_register_bytes (gdbarch, 32*8 + 32*8 + 45*8);
|
||||
set_gdbarch_register_name (gdbarch, sparc64_register_name);
|
||||
set_gdbarch_deprecated_store_return_value (gdbarch, sparc_store_return_value);
|
||||
tdep->has_fpu = 1; /* (all but sparclet and sparclite) */
|
||||
#if 0
|
||||
// OBSOLETE tdep->has_fpu = 1; /* (all but sparclet and sparclite) */
|
||||
#endif
|
||||
tdep->fp_register_bytes = 64 * 4;
|
||||
tdep->print_insn_mach = bfd_mach_sparc_v9a;
|
||||
break;
|
||||
@@ -3438,8 +3477,10 @@ sparc_dump_tdep (struct gdbarch *current_gdbarch, struct ui_file *file)
|
||||
if (tdep == NULL)
|
||||
return;
|
||||
|
||||
fprintf_unfiltered (file, "sparc_dump_tdep: has_fpu = %d\n",
|
||||
tdep->has_fpu);
|
||||
#if 0
|
||||
// OBSOLETE fprintf_unfiltered (file, "sparc_dump_tdep: has_fpu = %d\n",
|
||||
// OBSOLETE tdep->has_fpu);
|
||||
#endif
|
||||
fprintf_unfiltered (file, "sparc_dump_tdep: fp_register_bytes = %d\n",
|
||||
tdep->fp_register_bytes);
|
||||
fprintf_unfiltered (file, "sparc_dump_tdep: y_regnum = %d\n",
|
||||
|
||||
Reference in New Issue
Block a user