/* Target-dependent code for the VAX.
- Copyright (C) 1986-2018 Free Software Foundation, Inc.
+ Copyright (C) 1986-2021 Free Software Foundation, Inc.
This file is part of GDB.
int len = TYPE_LENGTH (type);
gdb_byte buf[8];
- if (TYPE_CODE (type) == TYPE_CODE_STRUCT
- || TYPE_CODE (type) == TYPE_CODE_UNION
- || TYPE_CODE (type) == TYPE_CODE_ARRAY)
+ if (type->code () == TYPE_CODE_STRUCT
+ || type->code () == TYPE_CODE_UNION
+ || type->code () == TYPE_CODE_ARRAY)
{
/* The default on VAX is to return structures in static memory.
- Consequently a function must return the address where we can
- find the return value. */
+ Consequently a function must return the address where we can
+ find the return value. */
if (readbuf)
{
CORE_ADDR base;
/* Table of saved registers. */
- struct trad_frame_saved_reg *saved_regs;
+ trad_frame_saved_reg *saved_regs;
};
static struct vax_frame_cache *
mask = get_frame_memory_unsigned (this_frame, cache->base + 4, 4) >> 16;
/* These are always saved. */
- cache->saved_regs[VAX_PC_REGNUM].addr = cache->base + 16;
- cache->saved_regs[VAX_FP_REGNUM].addr = cache->base + 12;
- cache->saved_regs[VAX_AP_REGNUM].addr = cache->base + 8;
- cache->saved_regs[VAX_PS_REGNUM].addr = cache->base + 4;
+ cache->saved_regs[VAX_PC_REGNUM].set_addr (cache->base + 16);
+ cache->saved_regs[VAX_FP_REGNUM].set_addr (cache->base + 12);
+ cache->saved_regs[VAX_AP_REGNUM].set_addr (cache->base + 8);
+ cache->saved_regs[VAX_PS_REGNUM].set_addr (cache->base + 4);
/* Scan the register save mask and record the location of the saved
registers. */
{
if (mask & (1 << regnum))
{
- cache->saved_regs[regnum].addr = addr;
+ cache->saved_regs[regnum].set_addr (addr);
addr += 4;
}
}
ULONGEST numarg;
/* This is a procedure with Stack Argument List. Adjust the
- stack address for the arguments that were pushed onto the
- stack. The return instruction will automatically pop the
- arguments from the stack. */
+ stack address for the arguments that were pushed onto the
+ stack. The return instruction will automatically pop the
+ arguments from the stack. */
numarg = get_frame_memory_unsigned (this_frame, addr, 1);
addr += 4 + numarg * 4;
}
/* Bits 1:0 of the stack pointer were saved in the control bits. */
- trad_frame_set_value (cache->saved_regs, VAX_SP_REGNUM, addr + (mask >> 14));
+ cache->saved_regs[VAX_SP_REGNUM].set_value (addr + (mask >> 14));
return cache;
}
return get_frame_memory_unsigned (frame, args, 1);
}
-static CORE_ADDR
-vax_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
-{
- return frame_unwind_register_unsigned (next_frame, VAX_PC_REGNUM);
-}
\f
/* Initialize the current architecture based on INFO. If possible, re-use an
set_gdbarch_deprecated_function_start_offset (gdbarch, 2);
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
- set_gdbarch_unwind_pc (gdbarch, vax_unwind_pc);
-
frame_base_set_default (gdbarch, &vax_frame_base);
/* Hook in ABI-specific overrides, if they have been registered. */
return (gdbarch);
}
+void _initialize_vax_tdep ();
void
-_initialize_vax_tdep (void)
+_initialize_vax_tdep ()
{
gdbarch_register (bfd_arch_vax, vax_gdbarch_init, NULL);
}