/* APPLE LOCAL begin Darwin */ enum return_value_convention ppc_darwin_abi_return_value (struct gdbarch *gdbarch, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); if (TYPE_CODE (valtype) == TYPE_CODE_STRUCT || TYPE_CODE (valtype) == TYPE_CODE_UNION) { if (readbuf != NULL) { /* CORE_ADDR is more logical, but ULONGEST finesses the situation of G5 registers in 32-bit mode. */ ULONGEST addr; regcache_cooked_read (regcache, tdep->ppc_gp0_regnum + 3, (gdb_byte *) &addr); read_memory (addr, readbuf, TYPE_LENGTH (valtype)); } return RETURN_VALUE_ABI_RETURNS_ADDRESS; } else return do_ppc_sysv_return_value (gdbarch, valtype, regcache, readbuf, writebuf, 0); }
enum return_value_convention ppc_sysv_abi_return_value (struct gdbarch *gdbarch, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) { return do_ppc_sysv_return_value (gdbarch, valtype, regcache, readbuf, writebuf, 0); }
enum return_value_convention ppc_sysv_abi_broken_return_value (struct gdbarch *gdbarch, struct type *valtype, struct regcache *regcache, void *readbuf, const void *writebuf) { return do_ppc_sysv_return_value (gdbarch, valtype, regcache, readbuf, writebuf, 1); }