/* Dynamic architecture support for GDB, the GNU debugger.
- Copyright (C) 1998-2019 Free Software Foundation, Inc.
+ Copyright (C) 1998-2020 Free Software Foundation, Inc.
This file is part of GDB.
#include "defs.h"
-/* Local non-gdb includes. */
#include "arch-utils.h"
-#include "common/version.h"
-#include "dis-asm.h"
-#include "floatformat.h"
#include "gdbcmd.h"
-#include "gdbcore.h"
-#include "inferior.h"
+#include "inferior.h" /* enum CALL_DUMMY_LOCATION et al. */
#include "infrun.h"
-#include "language.h"
-#include "objfiles.h"
-#include "osabi.h"
#include "regcache.h"
#include "sim-regno.h"
-#include "symtab.h"
+#include "gdbcore.h"
+#include "osabi.h"
#include "target-descriptions.h"
+#include "objfiles.h"
+#include "language.h"
+#include "symtab.h"
+
+#include "gdbsupport/version.h"
+
+#include "floatformat.h"
+
+#include "dis-asm.h"
int
default_displaced_step_hw_singlestep (struct gdbarch *gdbarch,
gdb_assert (regnum >= 0 && regnum < gdbarch_num_regs (gdbarch));
/* NOTE: cagney/2002-05-13: The old code did it this way and it is
suspected that some GDB/SIM combinations may rely on this
- behavour. The default should be one2one_register_sim_regno
+ behaviour. The default should be one2one_register_sim_regno
(below). */
if (gdbarch_register_name (gdbarch, regnum) != NULL
&& gdbarch_register_name (gdbarch, regnum)[0] != '\0')
SELECTED may be NULL, in which case we return the architecture
associated with TARGET_DESC. If SELECTED specifies a variant
- of the architecture associtated with TARGET_DESC, return the
+ of the architecture associated with TARGET_DESC, return the
more specific of the two.
If SELECTED is a different architecture, but it is accepted as
/* Usually, the return value's address is stored the in the "first hidden"
parameter if the return value should be passed by reference, as
specified in ABI. */
- return language_pass_by_reference (type);
+ return !(language_pass_by_reference (type).trivially_copyable);
}
int default_insn_is_call (struct gdbarch *gdbarch, CORE_ADDR addr)
/* -mcmodel=large is used so that no GOT (Global Offset Table) is needed to be
created in inferior memory by GDB (normally it is set by ld.so). */
-char *
+std::string
default_gcc_target_options (struct gdbarch *gdbarch)
{
- return xstrprintf ("-m%d%s", gdbarch_ptr_bit (gdbarch),
- gdbarch_ptr_bit (gdbarch) == 64 ? " -mcmodel=large" : "");
+ return string_printf ("-m%d%s", gdbarch_ptr_bit (gdbarch),
+ (gdbarch_ptr_bit (gdbarch) == 64
+ ? " -mcmodel=large" : ""));
}
/* gdbarch gnu_triplet_regexp method. */
{
CORE_ADDR new_pc = pc;
- TRY
+ try
{
new_pc = gdbarch_skip_prologue (gdbarch, pc);
}
- CATCH (ex, RETURN_MASK_ALL)
+ catch (const gdb_exception &ex)
{}
- END_CATCH
return new_pc;
}
return 0;
}
+/* See arch-utils.h. */
+
+std::string
+default_get_pc_address_flags (frame_info *frame, CORE_ADDR pc)
+{
+ return "";
+}
+
void
_initialize_gdbarch_utils (void)
{