Skip to content

Commit

Permalink
Revise 'struct fpreg' such that it can actually represent the full VF…
Browse files Browse the repository at this point in the history
…Pv3-D32

state.

ok patrick@
  • Loading branch information
kettenis committed Jan 23, 2018
1 parent 42b2cac commit 43d7672
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 13 deletions.
16 changes: 8 additions & 8 deletions gnu/usr.bin/binutils/gdb/armnbsd-nat.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,10 @@ supply_fparegset (struct fpreg *fparegset)

for (regno = ARM_F0_REGNUM; regno <= ARM_F7_REGNUM; regno++)
regcache_raw_supply (current_regcache, regno,
(char *) &fparegset->fpr[regno - ARM_F0_REGNUM]);
(char *) &fparegset->fp_reg[regno - ARM_F0_REGNUM]);

regcache_raw_supply (current_regcache, ARM_FPS_REGNUM,
(char *) &fparegset->fpr_fpsr);
(char *) &fparegset->fp_scr);
}

static void
Expand Down Expand Up @@ -164,12 +164,12 @@ fetch_fp_register (int regno)
{
case ARM_FPS_REGNUM:
regcache_raw_supply (current_regcache, ARM_FPS_REGNUM,
(char *) &inferior_fp_registers.fpr_fpsr);
(char *) &inferior_fp_registers.fp_scr);
break;

default:
regcache_raw_supply (current_regcache, regno,
(char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]);
(char *) &inferior_fp_registers.fp_reg[regno - ARM_F0_REGNUM]);
break;
}
}
Expand Down Expand Up @@ -352,12 +352,12 @@ store_fp_register (int regno)
{
case ARM_FPS_REGNUM:
regcache_raw_collect (current_regcache, ARM_FPS_REGNUM,
(char *) &inferior_fp_registers.fpr_fpsr);
(char *) &inferior_fp_registers.fp_scr);
break;

default:
regcache_raw_collect (current_regcache, regno,
(char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]);
(char *) &inferior_fp_registers.fp_reg[regno - ARM_F0_REGNUM]);
break;
}

Expand All @@ -378,10 +378,10 @@ store_fp_regs (void)

for (regno = ARM_F0_REGNUM; regno <= ARM_F7_REGNUM; regno++)
regcache_raw_collect (current_regcache, regno,
(char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]);
(char *) &inferior_fp_registers.fp_reg[regno - ARM_F0_REGNUM]);

regcache_raw_collect (current_regcache, ARM_FPS_REGNUM,
(char *) &inferior_fp_registers.fpr_fpsr);
(char *) &inferior_fp_registers.fp_scr);

ret = ptrace (PT_SETFPREGS, PIDGET (inferior_ptid),
(PTRACE_TYPE_ARG3) &inferior_fp_registers, 0);
Expand Down
8 changes: 3 additions & 5 deletions sys/arch/arm/include/reg.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* $OpenBSD: reg.h,v 1.2 2011/03/23 16:54:34 pirofti Exp $ */
/* $OpenBSD: reg.h,v 1.3 2018/01/23 12:38:14 kettenis Exp $ */
/* $NetBSD: reg.h,v 1.1 2001/02/11 14:51:55 bjh21 Exp $ */

/*
Expand Down Expand Up @@ -37,8 +37,6 @@
#ifndef _ARM_REG_H_
#define _ARM_REG_H_

#include <machine/fp.h>

struct reg {
unsigned int r[13];
unsigned int r_sp;
Expand All @@ -48,8 +46,8 @@ struct reg {
};

struct fpreg {
unsigned int fpr_fpsr;
fp_reg_t fpr[8];
uint64_t fp_reg[32];
uint32_t fp_scr;
};

#endif /* !_ARM_REG_H_ */

0 comments on commit 43d7672

Please sign in to comment.