X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Falphabsd-tdep.c;h=3e0f2272787327f1324dd008c8c66b26a6a40cd1;hb=bcb3dc3d553e30a82bfab16b7cc3da7e4e416203;hp=39a9b1ae77eb93c979fa1ea49f49059281d473c0;hpb=12bcb0fe6dec61c540012f469c4cb0a56d6b6ea4;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/alphabsd-tdep.c b/gdb/alphabsd-tdep.c index 39a9b1ae77..3e0f227278 100644 --- a/gdb/alphabsd-tdep.c +++ b/gdb/alphabsd-tdep.c @@ -19,84 +19,37 @@ Boston, MA 02111-1307, USA. */ #include "defs.h" -#include "regcache.h" #include "alpha-tdep.h" #include "alphabsd-tdep.h" -/* Number of general-purpose registers. */ -#define NUM_GREGS 32 - -/* Number of floating-point registers. */ -#define NUM_FPREGS 31 - /* Conviently, GDB uses the same register numbering as the ptrace register structure used by BSD on Alpha. */ void alphabsd_supply_reg (char *regs, int regno) { - int i; - - for (i = 0; i < NUM_GREGS; i++) - { - if (i == regno || regno == -1) - { - if (CANNOT_FETCH_REGISTER (i)) - supply_register (i, NULL); - else - supply_register (i, regs + (i * 8)); - } - } - - /* The PC travels in the ZERO slot. */ - if (regno == PC_REGNUM || regno == -1) - supply_register (PC_REGNUM, regs + (31 * 8)); + /* PC is at slot 32; UNIQUE not present. */ + alpha_supply_int_regs (regno, regs, regs + 31*8, NULL); } void alphabsd_fill_reg (char *regs, int regno) { - int i; - - for (i = 0; i < NUM_GREGS; i++) - if ((regno == i || regno == -1) && ! CANNOT_STORE_REGISTER (i)) - regcache_collect (i, regs + (i * 8)); - - /* The PC travels in the ZERO slot. */ - if (regno == PC_REGNUM || regno == -1) - regcache_collect (PC_REGNUM, regs + (31 * 8)); + /* PC is at slot 32; UNIQUE not present. */ + alpha_fill_int_regs (regno, regs, regs + 31*8, NULL); } void alphabsd_supply_fpreg (char *fpregs, int regno) { - int i; - - for (i = FP0_REGNUM; i < FP0_REGNUM + NUM_FPREGS; i++) - { - if (i == regno || regno == -1) - { - if (CANNOT_FETCH_REGISTER (i)) - supply_register (i, NULL); - else - supply_register (i, fpregs + ((i - FP0_REGNUM) * 8)); - } - } - - if (regno == ALPHA_FPCR_REGNUM || regno == -1) - supply_register (ALPHA_FPCR_REGNUM, fpregs + (32 * 8)); + /* FPCR is at slot 33; slot 32 unused. */ + alpha_supply_fp_regs (regno, fpregs, fpregs + 32*8); } void alphabsd_fill_fpreg (char *fpregs, int regno) { - int i; - - for (i = FP0_REGNUM; i < FP0_REGNUM + NUM_FPREGS; i++) - if ((regno == i || regno == -1) && ! CANNOT_STORE_REGISTER (i)) - regcache_collect (i, fpregs + ((i - FP0_REGNUM) * 8)); - - if (regno == ALPHA_FPCR_REGNUM || regno == -1) - regcache_collect (ALPHA_FPCR_REGNUM, fpregs + (32 * 8)); + /* FPCR is at slot 33; slot 32 unused. */ + alpha_fill_fp_regs (regno, fpregs, fpregs + 32*8); }