2003-11-13 Andrew Cagney <cagney@redhat.com>
* arch-utils.h (selected_architecture_name): Declare. (selected_byte_order): Declare. * arch-utils.c (selected_byte_order): New function. (selected_architecture_name): New function. (target_architecture_auto): Make static. (set_architecture_string): Make static. (target_byte_order): Make static. (target_byte_order_auto): Make static. * gdbarch.sh (TARGET_BYTE_ORDER, TARGET_ARCHITECTURE): Delete non-multi-arch definition. (TARGET_ARCHITECTURE_AUTO, TARGET_BYTE_ORDER_AUTO): Delete. (target_byte_order, target_architecture): Delete declaration. (target_byte_order_auto, target_architecture_auto): Ditto. * gdbarch.h: Re-generate. * remote-sim.c (gdbsim_open): Use "selected_architecture_name" and "selected_byte_order".
This commit is contained in:
parent
475b6ddd32
commit
a8cf2722ea
@ -1,3 +1,22 @@
|
||||
2003-11-13 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* arch-utils.h (selected_architecture_name): Declare.
|
||||
(selected_byte_order): Declare.
|
||||
* arch-utils.c (selected_byte_order): New function.
|
||||
(selected_architecture_name): New function.
|
||||
(target_architecture_auto): Make static.
|
||||
(set_architecture_string): Make static.
|
||||
(target_byte_order): Make static.
|
||||
(target_byte_order_auto): Make static.
|
||||
* gdbarch.sh (TARGET_BYTE_ORDER, TARGET_ARCHITECTURE): Delete
|
||||
non-multi-arch definition.
|
||||
(TARGET_ARCHITECTURE_AUTO, TARGET_BYTE_ORDER_AUTO): Delete.
|
||||
(target_byte_order, target_architecture): Delete declaration.
|
||||
(target_byte_order_auto, target_architecture_auto): Ditto.
|
||||
* gdbarch.h: Re-generate.
|
||||
* remote-sim.c (gdbsim_open): Use "selected_architecture_name" and
|
||||
"selected_byte_order".
|
||||
|
||||
2003-11-13 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* ppc-linux-tdep.c (ppc_linux_return_value): Fix parameter order.
|
||||
|
@ -380,8 +380,17 @@ default_stabs_argument_has_addr (struct gdbarch *gdbarch, struct type *type)
|
||||
The choice of initial value is entirely arbitrary. During startup,
|
||||
the function initialize_current_architecture() updates this value
|
||||
based on default byte-order information extracted from BFD. */
|
||||
int target_byte_order = BFD_ENDIAN_BIG;
|
||||
int target_byte_order_auto = 1;
|
||||
static int target_byte_order = BFD_ENDIAN_BIG;
|
||||
static int target_byte_order_auto = 1;
|
||||
|
||||
enum bfd_endian
|
||||
selected_byte_order (void)
|
||||
{
|
||||
if (target_byte_order_auto)
|
||||
return BFD_ENDIAN_UNKNOWN;
|
||||
else
|
||||
return target_byte_order;
|
||||
}
|
||||
|
||||
static const char endian_big[] = "big";
|
||||
static const char endian_little[] = "little";
|
||||
@ -400,7 +409,7 @@ static const char *set_endian_string;
|
||||
static void
|
||||
show_endian (char *args, int from_tty)
|
||||
{
|
||||
if (TARGET_BYTE_ORDER_AUTO)
|
||||
if (target_byte_order_auto)
|
||||
printf_unfiltered ("The target endianness is set automatically (currently %s endian)\n",
|
||||
(TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? "big" : "little"));
|
||||
else
|
||||
@ -443,9 +452,18 @@ set_endian (char *ignore_args, int from_tty, struct cmd_list_element *c)
|
||||
|
||||
enum set_arch { set_arch_auto, set_arch_manual };
|
||||
|
||||
int target_architecture_auto = 1;
|
||||
static int target_architecture_auto = 1;
|
||||
|
||||
const char *set_architecture_string;
|
||||
static const char *set_architecture_string;
|
||||
|
||||
const char *
|
||||
selected_architecture_name (void)
|
||||
{
|
||||
if (target_architecture_auto)
|
||||
return NULL;
|
||||
else
|
||||
return set_architecture_string;
|
||||
}
|
||||
|
||||
/* Called if the user enters ``show architecture'' without an
|
||||
argument. */
|
||||
|
@ -149,9 +149,21 @@ extern int default_stabs_argument_has_addr (struct gdbarch *gdbarch,
|
||||
|
||||
extern int legacy_register_sim_regno (int regnum);
|
||||
|
||||
/* Return the selected byte order, or BFD_ENDIAN_UNKNOWN if no byte
|
||||
order was explicitly selected. */
|
||||
extern enum bfd_endian selected_byte_order (void);
|
||||
|
||||
/* Return the selected architecture's name, or NULL if no architecture
|
||||
was explicitly selected. */
|
||||
extern const char *selected_architecture_name (void);
|
||||
|
||||
/* Initialize a ``struct info''. Can't use memset(0) since some
|
||||
default values are not zero. */
|
||||
default values are not zero. "fill" takes all available
|
||||
information and fills in any unspecified fields. */
|
||||
|
||||
extern void gdbarch_info_init (struct gdbarch_info *info);
|
||||
extern void gdbarch_info_fill (struct gdbarch *gdbarch,
|
||||
struct gdbarch_info *info);
|
||||
|
||||
/* Similar to init, but this time fill in the blanks. Information is
|
||||
obtained from the specified architecture, global "set ..." options,
|
||||
|
@ -2609,6 +2609,7 @@ extern void set_gdbarch_data (struct gdbarch *gdbarch,
|
||||
extern void *gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *);
|
||||
|
||||
|
||||
|
||||
/* Register per-architecture memory region.
|
||||
|
||||
Provide a memory-region swap mechanism. Per-architecture memory
|
||||
@ -2627,33 +2628,6 @@ extern void register_gdbarch_swap (void *data, unsigned long size, gdbarch_swap_
|
||||
|
||||
|
||||
|
||||
/* The target-system-dependent byte order is dynamic */
|
||||
|
||||
extern int target_byte_order;
|
||||
#ifndef TARGET_BYTE_ORDER
|
||||
#define TARGET_BYTE_ORDER (target_byte_order + 0)
|
||||
#endif
|
||||
|
||||
extern int target_byte_order_auto;
|
||||
#ifndef TARGET_BYTE_ORDER_AUTO
|
||||
#define TARGET_BYTE_ORDER_AUTO (target_byte_order_auto + 0)
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/* The target-system-dependent BFD architecture is dynamic */
|
||||
|
||||
extern int target_architecture_auto;
|
||||
#ifndef TARGET_ARCHITECTURE_AUTO
|
||||
#define TARGET_ARCHITECTURE_AUTO (target_architecture_auto + 0)
|
||||
#endif
|
||||
|
||||
extern const struct bfd_arch_info *target_architecture;
|
||||
#ifndef TARGET_ARCHITECTURE
|
||||
#define TARGET_ARCHITECTURE (target_architecture + 0)
|
||||
#endif
|
||||
|
||||
|
||||
/* Set the dynamic target-system-dependent parameters (architecture,
|
||||
byte-order, ...) using information found in the BFD */
|
||||
|
||||
|
@ -1215,6 +1215,7 @@ extern void set_gdbarch_data (struct gdbarch *gdbarch,
|
||||
extern void *gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *);
|
||||
|
||||
|
||||
|
||||
/* Register per-architecture memory region.
|
||||
|
||||
Provide a memory-region swap mechanism. Per-architecture memory
|
||||
@ -1233,33 +1234,6 @@ extern void register_gdbarch_swap (void *data, unsigned long size, gdbarch_swap_
|
||||
|
||||
|
||||
|
||||
/* The target-system-dependent byte order is dynamic */
|
||||
|
||||
extern int target_byte_order;
|
||||
#ifndef TARGET_BYTE_ORDER
|
||||
#define TARGET_BYTE_ORDER (target_byte_order + 0)
|
||||
#endif
|
||||
|
||||
extern int target_byte_order_auto;
|
||||
#ifndef TARGET_BYTE_ORDER_AUTO
|
||||
#define TARGET_BYTE_ORDER_AUTO (target_byte_order_auto + 0)
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/* The target-system-dependent BFD architecture is dynamic */
|
||||
|
||||
extern int target_architecture_auto;
|
||||
#ifndef TARGET_ARCHITECTURE_AUTO
|
||||
#define TARGET_ARCHITECTURE_AUTO (target_architecture_auto + 0)
|
||||
#endif
|
||||
|
||||
extern const struct bfd_arch_info *target_architecture;
|
||||
#ifndef TARGET_ARCHITECTURE
|
||||
#define TARGET_ARCHITECTURE (target_architecture + 0)
|
||||
#endif
|
||||
|
||||
|
||||
/* Set the dynamic target-system-dependent parameters (architecture,
|
||||
byte-order, ...) using information found in the BFD */
|
||||
|
||||
|
@ -42,6 +42,7 @@
|
||||
#include "regcache.h"
|
||||
#include "gdb_assert.h"
|
||||
#include "sim-regno.h"
|
||||
#include "arch-utils.h"
|
||||
|
||||
/* Prototypes */
|
||||
|
||||
@ -504,27 +505,23 @@ gdbsim_open (char *args, int from_tty)
|
||||
strcpy (arg_buf, "gdbsim"); /* 7 */
|
||||
/* Specify the byte order for the target when it is both selectable
|
||||
and explicitly specified by the user (not auto detected). */
|
||||
if (!TARGET_BYTE_ORDER_AUTO)
|
||||
switch (selected_byte_order ())
|
||||
{
|
||||
switch (TARGET_BYTE_ORDER)
|
||||
{
|
||||
case BFD_ENDIAN_BIG:
|
||||
strcat (arg_buf, " -E big");
|
||||
break;
|
||||
case BFD_ENDIAN_LITTLE:
|
||||
strcat (arg_buf, " -E little");
|
||||
break;
|
||||
default:
|
||||
internal_error (__FILE__, __LINE__,
|
||||
"Value of TARGET_BYTE_ORDER unknown");
|
||||
}
|
||||
case BFD_ENDIAN_BIG:
|
||||
strcat (arg_buf, " -E big");
|
||||
break;
|
||||
case BFD_ENDIAN_LITTLE:
|
||||
strcat (arg_buf, " -E little");
|
||||
break;
|
||||
case BFD_ENDIAN_UNKNOWN:
|
||||
break;
|
||||
}
|
||||
/* Specify the architecture of the target when it has been
|
||||
explicitly specified */
|
||||
if (!TARGET_ARCHITECTURE_AUTO)
|
||||
if (selected_architecture_name () != NULL)
|
||||
{
|
||||
strcat (arg_buf, " --architecture=");
|
||||
strcat (arg_buf, TARGET_ARCHITECTURE->printable_name);
|
||||
strcat (arg_buf, selected_architecture_name ());
|
||||
}
|
||||
/* finally, any explicit args */
|
||||
if (args)
|
||||
|
Loading…
Reference in New Issue
Block a user