[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] risu-m68k: update fpregs
From: |
Laurent Vivier |
Subject: |
[Qemu-devel] [PATCH] risu-m68k: update fpregs |
Date: |
Sun, 19 Feb 2017 21:02:31 +0100 |
f_fpregs is a 2d array, not 1d:
typedef struct fpregset
{
int f_pcr;
int f_psr;
int f_fpiaddr;
#ifdef __mcoldfire__
int f_fpregs[8][2];
#else
int f_fpregs[8][3];
#endif
} fpregset_t;
For the moment, we don't manage ColdFire case, only 680x0.
Signed-off-by: Laurent Vivier <address@hidden>
---
risu_reginfo_m68k.c | 29 ++++++++++++++---------------
1 file changed, 14 insertions(+), 15 deletions(-)
diff --git a/risu_reginfo_m68k.c b/risu_reginfo_m68k.c
index c9d21cc..d0d47d9 100644
--- a/risu_reginfo_m68k.c
+++ b/risu_reginfo_m68k.c
@@ -31,9 +31,9 @@ void reginfo_init(struct reginfo *ri, ucontext_t *uc)
ri->fpregs.f_psr = uc->uc_mcontext.fpregs.f_psr;
ri->fpregs.f_fpiaddr = uc->uc_mcontext.fpregs.f_fpiaddr;
for (i = 0; i < 8; i++) {
- memcpy(&ri->fpregs.f_fpregs[i * 3],
- &uc->uc_mcontext.fpregs.f_fpregs[i * 3],
- 3 * sizeof(int));
+ memcpy(ri->fpregs.f_fpregs[i],
+ uc->uc_mcontext.fpregs.f_fpregs[i],
+ sizeof(ri->fpregs.f_fpregs[0]));
}
}
@@ -64,9 +64,9 @@ int reginfo_is_eq(struct reginfo *m, struct reginfo *a,
ucontext_t *uc)
}
for (i = 0; i < 8; i++) {
- if (m->fpregs.f_fpregs[i * 3] != a->fpregs.f_fpregs[i * 3] ||
- m->fpregs.f_fpregs[i * 3 + 1] != a->fpregs.f_fpregs[i * 3 + 1] ||
- m->fpregs.f_fpregs[i * 3 + 2] != a->fpregs.f_fpregs[i * 3 + 2]) {
+ if (m->fpregs.f_fpregs[i][0] != a->fpregs.f_fpregs[i][0] ||
+ m->fpregs.f_fpregs[i][1] != a->fpregs.f_fpregs[i][1] ||
+ m->fpregs.f_fpregs[i][2] != a->fpregs.f_fpregs[i][2]) {
return 0;
}
}
@@ -93,8 +93,8 @@ void reginfo_dump(struct reginfo *ri, int is_master)
for (i = 0; i < 8; i++) {
fprintf(stderr, "\tFP%d: %08x %08x %08x\n", i,
- ri->fpregs.f_fpregs[i * 3], ri->fpregs.f_fpregs[i * 3 + 1],
- ri->fpregs.f_fpregs[i * 3 + 2]);
+ ri->fpregs.f_fpregs[i][0], ri->fpregs.f_fpregs[i][1],
+ ri->fpregs.f_fpregs[i][2]);
}
fprintf(stderr, "\n");
@@ -134,15 +134,14 @@ int reginfo_dump_mismatch(struct reginfo *m, struct
reginfo *a, FILE *f)
}
for (i = 0; i < 8; i++) {
- if (m->fpregs.f_fpregs[i * 3] != a->fpregs.f_fpregs[i * 3] ||
- m->fpregs.f_fpregs[i * 3 + 1] != a->fpregs.f_fpregs[i * 3 + 1] ||
- m->fpregs.f_fpregs[i * 3 + 2] != a->fpregs.f_fpregs[i * 3 + 2]) {
+ if (m->fpregs.f_fpregs[i][0] != a->fpregs.f_fpregs[i][0] ||
+ m->fpregs.f_fpregs[i][1] != a->fpregs.f_fpregs[i][1] ||
+ m->fpregs.f_fpregs[i][2] != a->fpregs.f_fpregs[i][2]) {
fprintf(f, "Mismatch: Register FP%d\n", i);
fprintf(f, "m: [%08x %08x %08x] != a: [%08x %08x %08x]\n",
- m->fpregs.f_fpregs[i * 3], m->fpregs.f_fpregs[i * 3 + 1],
- m->fpregs.f_fpregs[i * 3 + 2], a->fpregs.f_fpregs[i * 3],
- a->fpregs.f_fpregs[i * 3 + 1],
- a->fpregs.f_fpregs[i * 3 + 2]);
+ m->fpregs.f_fpregs[i][0], m->fpregs.f_fpregs[i][1],
+ m->fpregs.f_fpregs[i][2], a->fpregs.f_fpregs[i][0],
+ a->fpregs.f_fpregs[i][1], a->fpregs.f_fpregs[i][2]);
}
}
--
2.9.3
- [Qemu-devel] [PATCH] risu-m68k: update fpregs,
Laurent Vivier <=