X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fhppa-tdep.h;h=79e8ae3112ba697ab1687f7fa5f4fc6ee384342c;hb=ba3e8e46435a896352acc4be831145dfec819f5f;hp=80742f0f648ab8b4b6c56f4eab4ed5e221ea5464;hpb=fdd72f950f09a3f553525cc54af622eb533d13d2;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/hppa-tdep.h b/gdb/hppa-tdep.h index 80742f0f64..79e8ae3112 100644 --- a/gdb/hppa-tdep.h +++ b/gdb/hppa-tdep.h @@ -23,6 +23,48 @@ enum { HPPA_INSTRUCTION_SIZE = 4 }; +/* Register numbers of various important registers. + Note that some of these values are "real" register numbers, + and correspond to the general registers of the machine, + and some are "phony" register numbers which are too large + to be actual register numbers as far as the user is concerned + but do serve to get the desired values when passed to read_register. */ + +enum { + HPPA_R0_REGNUM = 0, /* Doesn't actually exist, used as base for + other r registers. */ + HPPA_FLAGS_REGNUM = 0, /* Various status flags */ + HPPA_RP_REGNUM = 2, /* return pointer */ + HPPA_FP_REGNUM = 3, /* The ABI's frame pointer, when used */ + HPPA_SP_REGNUM = 30, /* Stack pointer. */ + HPPA_SAR_REGNUM = 32, /* Shift Amount Register */ + HPPA_IPSW_REGNUM = 41, /* Interrupt Processor Status Word */ + HPPA_PCOQ_HEAD_REGNUM = 33, /* instruction offset queue head */ + HPPA_PCSQ_HEAD_REGNUM = 34, /* instruction space queue head */ + HPPA_PCOQ_TAIL_REGNUM = 35, /* instruction offset queue tail */ + HPPA_PCSQ_TAIL_REGNUM = 36, /* instruction space queue tail */ + HPPA_EIEM_REGNUM = 37, /* External Interrupt Enable Mask */ + HPPA_IIR_REGNUM = 38, /* Interrupt Instruction Register */ + HPPA_ISR_REGNUM = 39, /* Interrupt Space Register */ + HPPA_IOR_REGNUM = 40, /* Interrupt Offset Register */ + HPPA_SR4_REGNUM = 43, /* space register 4 */ + HPPA_RCR_REGNUM = 51, /* Recover Counter (also known as cr0) */ + HPPA_PID0_REGNUM = 52, /* Protection ID */ + HPPA_PID1_REGNUM = 53, /* Protection ID */ + HPPA_PID2_REGNUM = 55, /* Protection ID */ + HPPA_PID3_REGNUM = 56, /* Protection ID */ + HPPA_CCR_REGNUM = 54, /* Coprocessor Configuration Register */ + HPPA_TR0_REGNUM = 57, /* Temporary Registers (cr24 -> cr31) */ + HPPA_CR27_REGNUM = 60, /* Base register for thread-local storage, cr27 */ + HPPA_FP0_REGNUM = 64, /* First floating-point. */ + HPPA_FP4_REGNUM = 72, + + HPPA_ARG0_REGNUM = 26, /* The first argument of a callee. */ + HPPA_ARG1_REGNUM = 25, /* The second argument of a callee. */ + HPPA_ARG2_REGNUM = 24, /* The third argument of a callee. */ + HPPA_ARG3_REGNUM = 23 /* The fourth argument of a callee. */ +}; + /* Target-dependent structure in gdbarch. */ struct gdbarch_tdep { @@ -104,6 +146,8 @@ enum unwind_stub_types IMPORT_SHLIB = 12, }; +struct unwind_table_entry *find_unwind_entry (CORE_ADDR); + /* We use the objfile->obj_private pointer for two things: * 1. An unwind table; * @@ -134,4 +178,14 @@ struct hppa_objfile_private extern const struct objfile_data *hppa_objfile_priv_data; +int hppa_get_field (unsigned word, int from, int to); +int hppa_extract_5_load (unsigned int); +unsigned hppa_extract_5R_store (unsigned int); +unsigned hppa_extract_5r_store (unsigned int); +int hppa_extract_17 (unsigned int); +int hppa_extract_21 (unsigned); +int hppa_extract_14 (unsigned); +int hppa_low_sign_extend (unsigned int, unsigned int); +int hppa_sign_extend (unsigned int, unsigned int); + #endif /* HPPA_TDEP_H */