GDB (xrefs)
|
#include "defs.h"
#include "gdbcore.h"
#include "inferior.h"
#include "regcache.h"
#include "value.h"
#include "gdb_string.h"
#include "gdb_assert.h"
#include "ppc-tdep.h"
#include "target.h"
#include "objfiles.h"
#include "infcall.h"
#include "dwarf2.h"
Go to the source code of this file.
static int convert_code_addr_to_desc_addr | ( | CORE_ADDR | code_addr, |
CORE_ADDR * | desc_addr | ||
) | [static] |
Definition at line 1076 of file ppc-sysv-tdep.c.
References find_pc_section(), lookup_minimal_symbol(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, obj_section::objfile, SYMBOL_LINKAGE_NAME, and SYMBOL_VALUE_ADDRESS.
Referenced by ppc64_sysv_abi_push_dummy_call().
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 | ||
) | [static] |
Definition at line 692 of file ppc-sysv-tdep.c.
References check_typedef(), convert_typed_floating(), floatformats_ibm_long_double, gdb_assert, gdbarch_byte_order(), gdbarch_long_double_format(), gdbarch_tdep(), get_decimal_float_return_value(), len, MAX_REGISTER_SIZE, memcpy(), memset(), offset, POWERPC_VEC_ALTIVEC, POWERPC_VEC_GENERIC, POWERPC_VEC_SPE, gdbarch_tdep::ppc_ev0_regnum, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_gp0_regnum, ppc_sysv_use_opencl_abi(), gdbarch_tdep::ppc_vr0_regnum, regcache_cooked_read(), regcache_cooked_read_unsigned(), regcache_cooked_write(), regcache_cooked_write_unsigned(), register_type(), regnum, regtype, RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, gdbarch_tdep::soft_float, store_unsigned_integer(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_DECFLOAT, TYPE_CODE_ENUM, TYPE_CODE_FLT, TYPE_CODE_INT, TYPE_CODE_PTR, TYPE_CODE_REF, TYPE_LENGTH, TYPE_TARGET_TYPE, TYPE_VECTOR, ULONGEST, unpack_long(), gdbarch_tdep::vector_abi, and gdbarch_tdep::wordsize.
Referenced by ppc_sysv_abi_broken_return_value(), and ppc_sysv_abi_return_value().
static int get_decimal_float_return_value | ( | struct gdbarch * | gdbarch, |
struct type * | valtype, | ||
struct regcache * | regcache, | ||
gdb_byte * | readbuf, | ||
const gdb_byte * | writebuf | ||
) | [static] |
Definition at line 615 of file ppc-sysv-tdep.c.
References _, gdb_assert, gdbarch_tdep(), internal_error(), MAX_REGISTER_SIZE, memcpy(), p, gdbarch_tdep::ppc_fp0_regnum, regcache_cooked_read(), regcache_cooked_write(), RETURN_VALUE_REGISTER_CONVENTION, TYPE_CODE, TYPE_CODE_DECFLOAT, and TYPE_LENGTH.
Referenced by do_ppc_sysv_return_value(), and ppc64_sysv_abi_return_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 | ||
) |
Definition at line 1190 of file ppc-sysv-tdep.c.
References align_down(), align_up(), check_typedef(), convert_code_addr_to_desc_addr(), convert_typed_floating(), find_function_addr(), floatformats_ibm_long_double, gdb_assert, gdbarch_byte_order(), gdbarch_long_double_format(), gdbarch_sp_regnum(), gdbarch_tdep(), len, LONGEST, MAX_REGISTER_SIZE, memcpy(), memset(), p, POWERPC_VEC_ALTIVEC, ppc64_sysv_abi_push_float(), ppc_floating_point_unit_p(), gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_gp0_regnum, gdbarch_tdep::ppc_lr_regnum, ppc_sysv_use_opencl_abi(), gdbarch_tdep::ppc_vr0_regnum, read_memory_unsigned_integer(), regcache_cooked_read_unsigned(), regcache_cooked_write(), regcache_cooked_write_signed(), regcache_cooked_write_unsigned(), register_type(), regnum, regtype, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_COMPLEX, TYPE_CODE_DECFLOAT, TYPE_CODE_ENUM, TYPE_CODE_FLT, TYPE_CODE_FUNC, TYPE_CODE_INT, TYPE_CODE_METHOD, TYPE_CODE_PTR, TYPE_CODE_REF, TYPE_CODE_STRUCT, TYPE_FIELD_TYPE, TYPE_LENGTH, TYPE_NFIELDS, TYPE_TARGET_TYPE, TYPE_VECTOR, ULONGEST, unpack_long(), value_as_address(), value_contents(), value_type(), gdbarch_tdep::vector_abi, word, gdbarch_tdep::wordsize, wordsize, write_memory(), write_memory_signed_integer(), and write_memory_unsigned_integer().
Referenced by rs6000_gdbarch_init().
static void ppc64_sysv_abi_push_float | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
struct gdbarch_tdep * | tdep, | ||
struct type * | type, | ||
const bfd_byte * | val, | ||
int | freg, | ||
int | greg, | ||
CORE_ADDR | gparam | ||
) | [static] |
Definition at line 1113 of file ppc-sysv-tdep.c.
References convert_typed_floating(), MAX_REGISTER_SIZE, memcpy(), p, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_gp0_regnum, regcache_cooked_write(), register_type(), regtype, gdbarch_tdep::soft_float, TYPE_LENGTH, and write_memory().
Referenced by ppc64_sysv_abi_push_dummy_call().
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 | ||
) |
Definition at line 1770 of file ppc-sysv-tdep.c.
References check_typedef(), convert_typed_floating(), gdb_assert, gdbarch_byte_order(), gdbarch_tdep(), get_decimal_float_return_value(), MAX_REGISTER_SIZE, offset, POWERPC_VEC_ALTIVEC, ppc_floating_point_unit_p(), gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_gp0_regnum, ppc_sysv_use_opencl_abi(), gdbarch_tdep::ppc_vr0_regnum, regcache_cooked_read(), regcache_cooked_read_part(), regcache_cooked_read_unsigned(), regcache_cooked_write(), regcache_cooked_write_part(), regcache_cooked_write_unsigned(), register_size(), register_type(), regnum, regtype, RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, store_unsigned_integer(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_COMPLEX, TYPE_CODE_DECFLOAT, TYPE_CODE_ENUM, TYPE_CODE_FLT, TYPE_CODE_INT, TYPE_CODE_PTR, TYPE_CODE_REF, TYPE_LENGTH, TYPE_TARGET_TYPE, TYPE_VECTOR, ULONGEST, unpack_long(), value_type(), and gdbarch_tdep::vector_abi.
Referenced by rs6000_gdbarch_init().
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 | ||
) |
Definition at line 1053 of file ppc-sysv-tdep.c.
References do_ppc_sysv_return_value(), and value_type().
Referenced by ppcfbsd_return_value(), ppcnbsd_return_value(), and ppcobsd_init_abi().
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 | ||
) |
Definition at line 62 of file ppc-sysv-tdep.c.
References align_down(), align_up(), check_typedef(), convert_typed_floating(), floatformats_ibm_long_double, gdb_assert, gdbarch_byte_order(), gdbarch_long_double_format(), gdbarch_sp_regnum(), gdbarch_tdep(), len, MAX_REGISTER_SIZE, memcpy(), memset(), p, POWERPC_VEC_ALTIVEC, POWERPC_VEC_SPE, gdbarch_tdep::ppc_cr_regnum, gdbarch_tdep::ppc_ev0_regnum, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_gp0_regnum, gdbarch_tdep::ppc_lr_regnum, ppc_sysv_use_opencl_abi(), gdbarch_tdep::ppc_vr0_regnum, regcache_cooked_read_unsigned(), regcache_cooked_write(), regcache_cooked_write_signed(), regcache_cooked_write_unsigned(), register_type(), regnum, regtype, gdbarch_tdep::soft_float, store_unsigned_integer(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_DECFLOAT, TYPE_CODE_FLT, TYPE_CODE_INT, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, TYPE_TARGET_TYPE, TYPE_VECTOR, ULONGEST, unpack_long(), value_contents(), value_type(), gdbarch_tdep::vector_abi, word, gdbarch_tdep::wordsize, write_memory(), and write_memory_signed_integer().
Referenced by rs6000_gdbarch_init().
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 | ||
) |
Definition at line 1043 of file ppc-sysv-tdep.c.
References do_ppc_sysv_return_value(), and value_type().
Referenced by ppc_linux_return_value(), and rs6000_gdbarch_init().
static int ppc_sysv_use_opencl_abi | ( | struct type * | ftype | ) | [static] |
Definition at line 39 of file ppc-sysv-tdep.c.
References check_typedef(), TYPE_CALLING_CONVENTION, TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_PTR, and TYPE_TARGET_TYPE.
Referenced by do_ppc_sysv_return_value(), ppc64_sysv_abi_push_dummy_call(), ppc64_sysv_abi_return_value(), and ppc_sysv_abi_push_dummy_call().