88 for (write_pass = 0; write_pass < 2; write_pass++)
102 int structoffset = argoffset + argspace;
117 for (argno = 0; argno < nargs; argno++)
119 struct value *arg = args[argno];
159 argoffset =
align_up (argoffset, len);
188 argoffset =
align_up (argoffset, 8);
210 argoffset =
align_up (argoffset, 8);
245 argoffset =
align_up (argoffset, 8);
287 memcpy (regval + 4, val, 4);
301 argoffset =
align_up (argoffset, len);
331 argoffset =
align_up (argoffset, 8);
355 for (i = 0; i < nelt; i++)
377 argoffset =
align_up (argoffset, len);
383 else if (TYPE_LENGTH (eltype) == 8)
389 argoffset =
align_up (argoffset, 8);
392 TYPE_LENGTH (eltype));
404 regnum + 0, elval + 0);
406 regnum + 1, elval + 4);
444 for (i = 0; i < len / 16; i++)
446 const gdb_byte *elval = val + i * 16;
458 argoffset =
align_up (argoffset, 16);
481 argoffset =
align_up (argoffset, 16);
508 argoffset =
align_up (argoffset, 8);
529 structoffset =
align_up (structoffset, 16);
531 structoffset =
align_up (structoffset, 8);
547 memcpy (word, val, len);
571 argspace = argoffset;
573 sp -= (argoffset + structoffset);
623 if (writebuf != NULL)
631 memcpy (regval + 4, writebuf, 4);
645 memcpy (readbuf, readbuf + 4, 4);
651 if (writebuf != NULL || readbuf != NULL)
655 for (i = 0; i < 2; i++)
657 if (writebuf != NULL)
842 for (i = 0; i < nelt; i++)
852 if (writebuf != NULL)
862 readbuf + offset, eltype);
870 if (writebuf != NULL)
879 TYPE_LENGTH (eltype), byte_order,
896 for (i = 0; i < n_regs; i++)
901 if (writebuf != NULL)
990 memcpy (readbuf, regvals + offset, len);
994 memset (regvals, 0,
sizeof regvals);
995 memcpy (regvals + offset, writebuf, len);
1026 memset (regvals, 0,
sizeof regvals);
1046 valtype, regcache, readbuf, writebuf, 0);
1051 struct value *
function,
1052 struct type *valtype,
1058 valtype, regcache, readbuf, writebuf, 1);
1087 if (dot_fn_section == NULL || dot_fn_section->
objfile == NULL)
1111 struct type **field_type)
1150 LONGEST count, low_bound, high_bound;
1159 count *= high_bound - low_bound;
1186 if (sub_count == -1)
1192 count =
max (count, sub_count);
1219 struct type **elt_type,
int *n_elts)
1227 struct type *field_type = NULL;
1230 if (field_count > 0)
1238 if (field_count * n_regs <= 8)
1241 *elt_type = field_type;
1243 *n_elts = (
int) field_count;
1286 const bfd_byte *val,
int len,
int align,
1298 argpos->
gparam = aligned_gparam;
1355 struct type *
type,
const bfd_byte *val,
1409 if (argpos->
freg <= 12)
1457 struct type *
type,
const bfd_byte *val,
1511 struct type *target_type
1549 struct type *eltype;
1553 for (i = 0; i < nelt; i++)
1563 && TYPE_LENGTH (eltype) == 16)
1579 struct value *
function,
1625 for (write_pass = 0; write_pass < 2; write_pass++)
1669 for (argno = 0; argno < nargs; argno++)
1671 struct value *arg = args[argno];
1690 struct type *eltype;
1699 for (i = 0; i < nelt; i++)
1719 if (argpos.
greg < 8)
1722 gparam_size = argpos.
gparam;
1777 const gdb_byte *writebuf,
int index)
1790 if (writebuf != NULL)
1796 if (readbuf != NULL)
1818 if (writebuf != NULL)
1823 if (readbuf != NULL)
1842 if (writebuf != NULL)
1845 if (readbuf != NULL)
1859 if (writebuf != NULL)
1864 if (readbuf != NULL)
1881 if (writebuf != NULL)
1886 if (readbuf != NULL)
1901 if (writebuf != NULL)
1903 if (readbuf != NULL)
1918 if (writebuf != NULL)
1921 if (readbuf != NULL)
1948 struct type *eltype;
1961 for (i = 0; i < 2; i++)
1964 readbuf, writebuf, i);
1987 for (i = 0; i < nelt; i++)
1990 readbuf, writebuf, i);
2007 if (writebuf != NULL)
2009 if (readbuf != NULL)
2024 if (writebuf != NULL)
2027 if (readbuf != NULL)
2044 for (i = 0; i < nelt; i++)
2047 readbuf, writebuf, i);
2072 for (i = 0; i < n_regs; i++)
2082 if (writebuf != NULL)
2084 memset (regval, 0,
sizeof regval);
2087 memcpy (regval + tdep->
wordsize - len, writebuf, len);
2089 memcpy (regval, writebuf + offset, len);
2092 if (readbuf != NULL)
2097 memcpy (readbuf, regval + tdep->
wordsize - len, len);
2099 memcpy (readbuf + offset, regval, len);
2107 readbuf, writebuf, 0))
struct regcache * regcache
enum return_value_convention ppc_sysv_abi_broken_return_value(struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
#define MSYMBOL_LINKAGE_NAME(symbol)
#define BMSYMBOL_VALUE_ADDRESS(symbol)
const struct floatformat ** gdbarch_long_double_format(struct gdbarch *gdbarch)
ULONGEST align_down(ULONGEST v, int n)
void convert_typed_floating(const void *from, const struct type *from_type, void *to, const struct type *to_type)
void regcache_cooked_write_signed(struct regcache *regcache, int regnum, LONGEST val)
void internal_error(const char *file, int line, const char *fmt,...)
static void ppc64_sysv_abi_push_freg(struct gdbarch *gdbarch, struct type *type, const bfd_byte *val, struct ppc64_sysv_argpos *argpos)
void regcache_cooked_write_part(struct regcache *regcache, int regnum, int offset, int len, const gdb_byte *buf)
#define TYPE_FIELD(thistype, n)
struct gdbarch_tdep * gdbarch_tdep(struct gdbarch *gdbarch)
#define TYPE_FIELD_TYPE(thistype, n)
void store_unsigned_integer(gdb_byte *, int, enum bfd_endian, ULONGEST)
enum powerpc_vector_abi vector_abi
static LONGEST ppc64_aggregate_candidate(struct type *type, struct type **field_type)
struct type * check_typedef(struct type *type)
const gdb_byte * value_contents(struct value *value)
CORE_ADDR ppc64_sysv_abi_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)
static void ppc64_sysv_abi_push_param(struct gdbarch *gdbarch, struct type *type, const bfd_byte *val, struct ppc64_sysv_argpos *argpos)
static void ppc64_sysv_abi_push_integer(struct gdbarch *gdbarch, ULONGEST val, struct ppc64_sysv_argpos *argpos)
int field_is_static(struct field *f)
int gdbarch_sp_regnum(struct gdbarch *gdbarch)
enum register_status regcache_cooked_read_unsigned(struct regcache *regcache, int regnum, ULONGEST *val)
static int ppc_sysv_use_opencl_abi(struct type *ftype)
struct type * register_type(struct gdbarch *gdbarch, int regnum)
static int get_decimal_float_return_value(struct gdbarch *gdbarch, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
static int ppc64_elfv2_abi_homogeneous_aggregate(struct type *type, struct type **elt_type, int *n_elts)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
void write_memory_signed_integer(CORE_ADDR addr, int len, enum bfd_endian byte_order, LONGEST value)
const struct floatformat * floatformats_ibm_long_double[BFD_ENDIAN_UNKNOWN]
static int ppc64_sysv_abi_return_value_base(struct gdbarch *gdbarch, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf, int index)
struct obj_section * find_pc_section(CORE_ADDR pc)
CORE_ADDR ppc_sysv_abi_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)
LONGEST unpack_long(struct type *type, const gdb_byte *valaddr)
const char const char int
static void ppc64_sysv_abi_push_val(struct gdbarch *gdbarch, const bfd_byte *val, int len, int align, struct ppc64_sysv_argpos *argpos)
ULONGEST align_up(ULONGEST v, int n)
#define TYPE_TARGET_TYPE(thistype)
struct bound_minimal_symbol lookup_minimal_symbol_by_pc(CORE_ADDR pc)
#define TYPE_CODE(thistype)
void regcache_cooked_write_unsigned(struct regcache *regcache, int regnum, ULONGEST val)
CORE_ADDR find_function_addr(struct value *function, struct type **retval_type)
#define TYPE_CALLING_CONVENTION(thistype)
struct minimal_symbol * minsym
#define TYPE_NFIELDS(thistype)
enum register_status regcache_cooked_read(struct regcache *regcache, int regnum, gdb_byte *buf)
enum return_value_convention ppc64_sysv_abi_return_value(struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
unsigned long long ULONGEST
int register_size(struct gdbarch *gdbarch, int regnum)
static void ppc64_sysv_abi_push_vreg(struct gdbarch *gdbarch, const bfd_byte *val, struct ppc64_sysv_argpos *argpos)
struct type * value_type(const struct value *value)
enum register_status regcache_cooked_read_part(struct regcache *regcache, int regnum, int offset, int len, gdb_byte *buf)
CORE_ADDR value_as_address(struct value *val)
#define TYPE_LENGTH(thistype)
enum powerpc_elf_abi elf_abi
ULONGEST read_memory_unsigned_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order)
void write_memory(CORE_ADDR memaddr, const bfd_byte *myaddr, ssize_t len)
struct bound_minimal_symbol lookup_minimal_symbol(const char *name, const char *sfile, struct objfile *objf)
int ppc_floating_point_unit_p(struct gdbarch *gdbarch)
int get_array_bounds(struct type *type, LONGEST *low_bound, LONGEST *high_bound)
static int convert_code_addr_to_desc_addr(CORE_ADDR code_addr, CORE_ADDR *desc_addr)
enum return_value_convention ppc_sysv_abi_return_value(struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
static enum return_value_convention do_ppc_sysv_return_value(struct gdbarch *gdbarch, struct type *func_type, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf, int broken_gcc)
void regcache_cooked_write(struct regcache *regcache, int regnum, const gdb_byte *buf)
const ULONGEST const LONGEST len