/* Target-dependent code for the 32-bit OpenRISC 1000, for the GDB.
- Copyright (C) 2008-2019 Free Software Foundation, Inc.
+ Copyright (C) 2008-2021 Free Software Foundation, Inc.
This file is part of GDB.
#include "arch-utils.h"
#include "frame-unwind.h"
#include "frame-base.h"
-#include "dwarf2-frame.h"
+#include "dwarf2/frame.h"
#include "trad-frame.h"
#include "regset.h"
#include "remote.h"
gdb_byte *readbuf, const gdb_byte *writebuf)
{
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- enum type_code rv_type = TYPE_CODE (valtype);
+ enum type_code rv_type = valtype->code ();
unsigned int rv_size = TYPE_LENGTH (valtype);
int bpw = (gdbarch_tdep (gdbarch))->bytes_per_word;
struct value *arg = args[argnum];
struct type *arg_type = check_typedef (value_type (arg));
int len = TYPE_LENGTH (arg_type);
- enum type_code typecode = TYPE_CODE (arg_type);
+ enum type_code typecode = arg_type->code ();
- if (TYPE_VARARGS (func_type) && argnum >= TYPE_NFIELDS (func_type))
+ if (func_type->has_varargs () && argnum >= func_type->num_fields ())
break; /* end or regular args, varargs go to stack. */
/* Extract the value, either a reference or the data. */
struct value *arg = args[argnum];
struct type *arg_type = check_typedef (value_type (arg));
int len = TYPE_LENGTH (arg_type);
- enum type_code typecode = TYPE_CODE (arg_type);
+ enum type_code typecode = arg_type->code ();
if ((TYPE_CODE_STRUCT == typecode) || (TYPE_CODE_UNION == typecode)
|| (len > bpw * 2))
struct value *arg = args[argnum];
struct type *arg_type = check_typedef (value_type (arg));
int len = TYPE_LENGTH (arg_type);
- enum type_code typecode = TYPE_CODE (arg_type);
+ enum type_code typecode = arg_type->code ();
/* The EABI passes structures that do not fit in a register by
- reference. In all other cases, pass the structure by value. */
+ reference. In all other cases, pass the structure by value. */
if ((TYPE_CODE_STRUCT == typecode) || (TYPE_CODE_UNION == typecode)
|| (len > bpw * 2))
{
l.sw lr_loc(r1),r9 # Link (return) address
- The link register is usally saved at fp_loc - 4. It may not be saved at
+ The link register is usually saved at fp_loc - 4. It may not be saved at
all in a leaf function.
l.sw reg_loc(r1),ry # Save any callee saved regs
else
{
/* We are past this point, so the stack pointer of the prev
- frame is frame_size greater than the stack pointer of this
- frame. */
+ frame is frame_size greater than the stack pointer of this
+ frame. */
trad_frame_set_reg_value (info, OR1K_SP_REGNUM,
this_sp + frame_size);
}
inst = or1k_fetch_instruction (gdbarch, addr);
/* If we have got this far, the stack pointer of the previous
- frame is the frame pointer of this frame. */
+ frame is the frame pointer of this frame. */
trad_frame_set_reg_realreg (info, OR1K_SP_REGNUM,
OR1K_FP_REGNUM);
}
inst = or1k_fetch_instruction (gdbarch, addr);
/* The register in the previous frame can be found at this
- location in this frame. */
+ location in this frame. */
trad_frame_set_reg_addr (info, rb, this_sp + simm);
}
else
struct gdbarch *gdbarch;
struct gdbarch_tdep *tdep;
const struct bfd_arch_info *binfo;
- struct tdesc_arch_data *tdesc_data = NULL;
+ tdesc_arch_data_up tdesc_data;
const struct target_desc *tdesc = info.target_desc;
/* Find a candidate among the list of pre-declared architectures. */
feature = tdesc_find_feature (tdesc, "org.gnu.gdb.or1k.group0");
if (feature == NULL)
- return NULL;
+ return NULL;
tdesc_data = tdesc_data_alloc ();
valid_p = 1;
for (i = 0; i < OR1K_NUM_REGS; i++)
- valid_p &= tdesc_numbered_register (feature, tdesc_data, i,
- or1k_reg_names[i]);
+ valid_p &= tdesc_numbered_register (feature, tdesc_data.get (), i,
+ or1k_reg_names[i]);
if (!valid_p)
- {
- tdesc_data_cleanup (tdesc_data);
- return NULL;
- }
+ return NULL;
}
if (tdesc_data != NULL)
reggroup_add (gdbarch, save_reggroup);
reggroup_add (gdbarch, restore_reggroup);
- tdesc_use_registers (gdbarch, tdesc, tdesc_data);
+ tdesc_use_registers (gdbarch, tdesc, std::move (tdesc_data));
}
/* Hook in ABI-specific overrides, if they have been registered. */
}
\f
+void _initialize_or1k_tdep ();
void
-_initialize_or1k_tdep (void)
+_initialize_or1k_tdep ()
{
/* Register this architecture. */
gdbarch_register (bfd_arch_or1k, or1k_gdbarch_init, or1k_dump_tdep);