/* Darwin support for GDB, the GNU debugger.
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2020 Free Software Foundation, Inc.
Contributed by Apple Computer, Inc.
#include "inferior.h"
#include "gdbcore.h"
#include "target.h"
-#include "floatformat.h"
#include "symtab.h"
#include "regcache.h"
#include "objfiles.h"
#include "solib.h"
#include "solib-darwin.h"
#include "dwarf2-frame.h"
+#include <algorithm>
/* Offsets into the struct i386_thread_state where we'll find the saved regs.
From <mach/i386/thread_status.h> and i386-tdep.h. */
return i386_sigtramp_p (this_frame);
}
-/* Check wether TYPE is a 128-bit vector (__m128, __m128d or __m128i). */
+/* Check whether TYPE is a 128-bit vector (__m128, __m128d or __m128i). */
static int
i386_m128_p (struct type *type)
int i;
int res = 4;
for (i = 0; i < TYPE_NFIELDS (type); i++)
- res = max (res,
- i386_darwin_arg_type_alignment (TYPE_FIELD_TYPE (type, i)));
+ {
+ int align
+ = i386_darwin_arg_type_alignment (TYPE_FIELD_TYPE (type, i));
+
+ res = std::max (res, align);
+ }
return res;
}
/* 2. The caller aligns nonvector arguments to 4-byte boundaries. */
i386_darwin_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
struct regcache *regcache, CORE_ADDR bp_addr,
int nargs, struct value **args, CORE_ADDR sp,
- int struct_return, CORE_ADDR struct_addr)
+ function_call_return_method return_method,
+ CORE_ADDR struct_addr)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int args_space = 0;
int num_m128 = 0;
- if (struct_return)
+ if (return_method == return_method_struct)
{
if (write_pass)
{
if (write_pass)
{
const gdb_byte *val = value_contents_all (args[i]);
- regcache_raw_write
- (regcache, I387_MM0_REGNUM(tdep) + num_m128, val);
+ regcache->raw_write (I387_MM0_REGNUM(tdep) + num_m128, val);
}
num_m128++;
}
/* Finally, update the stack pointer... */
store_unsigned_integer (buf, 4, byte_order, sp);
- regcache_cooked_write (regcache, I386_ESP_REGNUM, buf);
+ regcache->cooked_write (I386_ESP_REGNUM, buf);
/* ...and fake a frame pointer. */
- regcache_cooked_write (regcache, I386_EBP_REGNUM, buf);
+ regcache->cooked_write (I386_EBP_REGNUM, buf);
/* MarkK wrote: This "+ 8" is all over the place:
(i386_frame_this_id, i386_sigtramp_frame_this_id,
return GDB_OSABI_UNKNOWN;
}
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_i386_darwin_tdep;
-
void
_initialize_i386_darwin_tdep (void)
{