[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RISU v2 15/17] Compute reginfo_size based on the reginfo
From: |
Alex Bennée |
Subject: |
Re: [RISU v2 15/17] Compute reginfo_size based on the reginfo |
Date: |
Wed, 20 May 2020 18:30:19 +0100 |
User-agent: |
mu4e 1.4.6; emacs 28.0.50 |
Richard Henderson <address@hidden> writes:
> This will allow dumping of SVE frames without having
> to know the SVE vector length beforehand.
>
> Signed-off-by: Richard Henderson <address@hidden>
> ---
> risu.h | 2 +-
> reginfo.c | 6 +++---
> risu_reginfo_aarch64.c | 4 ++--
> risu_reginfo_arm.c | 2 +-
> risu_reginfo_i386.c | 2 +-
> risu_reginfo_m68k.c | 2 +-
> risu_reginfo_ppc64.c | 2 +-
> 7 files changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/risu.h b/risu.h
> index eeb6775..054cef7 100644
> --- a/risu.h
> +++ b/risu.h
> @@ -155,6 +155,6 @@ int reginfo_dump(struct reginfo *ri, FILE * f);
> int reginfo_dump_mismatch(struct reginfo *m, struct reginfo *a, FILE *f);
>
> /* return size of reginfo */
> -const int reginfo_size(void);
> +int reginfo_size(struct reginfo *ri);
>
> #endif /* RISU_H */
> diff --git a/reginfo.c b/reginfo.c
> index f187d9c..411c2a6 100644
> --- a/reginfo.c
> +++ b/reginfo.c
> @@ -38,7 +38,7 @@ RisuResult send_register_info(void *uc)
> case OP_TESTEND:
> case OP_COMPARE:
> case OP_SIGILL:
> - header.size = reginfo_size();
> + header.size = reginfo_size(&ri);
> extra = &ri;
> break;
>
> @@ -109,7 +109,7 @@ RisuResult recv_and_compare_register_info(void *uc)
> case OP_TESTEND:
> case OP_COMPARE:
> case OP_SIGILL:
> - extra_size = reginfo_size();
> + extra_size = reginfo_size(&master_ri);
> break;
> case OP_SETMEMBLOCK:
> case OP_GETMEMBLOCK:
> @@ -217,7 +217,7 @@ void report_mismatch_header(void)
> case OP_COMPARE:
> case OP_SIGILL:
> kind = "reginfo";
> - a_sz = reginfo_size();
> + a_sz = reginfo_size(&apprentice_ri);
> break;
> case OP_SETMEMBLOCK:
> case OP_GETMEMBLOCK:
> diff --git a/risu_reginfo_aarch64.c b/risu_reginfo_aarch64.c
> index 028c690..7044648 100644
> --- a/risu_reginfo_aarch64.c
> +++ b/risu_reginfo_aarch64.c
> @@ -69,7 +69,7 @@ void process_arch_opt(int opt, const char *arg)
> #endif
> }
>
> -const int reginfo_size(void)
> +int reginfo_size(struct reginfo *ri)
> {
> int size = offsetof(struct reginfo, simd.end);
> #ifdef SVE_MAGIC
> @@ -194,7 +194,7 @@ void reginfo_init(struct reginfo *ri, ucontext_t *uc)
> /* reginfo_is_eq: compare the reginfo structs, returns nonzero if equal */
> int reginfo_is_eq(struct reginfo *r1, struct reginfo *r2)
> {
> - return memcmp(r1, r2, reginfo_size()) == 0;
> + return memcmp(r1, r2, reginfo_size(r1)) == 0;
> }
>
> #ifdef SVE_MAGIC
> diff --git a/risu_reginfo_arm.c b/risu_reginfo_arm.c
> index 3662f12..3832e27 100644
> --- a/risu_reginfo_arm.c
> +++ b/risu_reginfo_arm.c
> @@ -36,7 +36,7 @@ void process_arch_opt(int opt, const char *arg)
> abort();
> }
>
> -const int reginfo_size(void)
> +int reginfo_size(struct reginfo *ri)
> {
> return sizeof(struct reginfo);
I wonder if the fixed size architectures should return (sizeof *ri) to
reinforce the point? Anyway:
Reviewed-by: Alex Bennée <address@hidden>
--
Alex Bennée
- [RISU v2 10/17] Pass non-OK result back through siglongjmp, (continued)
- [RISU v2 10/17] Pass non-OK result back through siglongjmp, Richard Henderson, 2020/05/18
- [RISU v2 12/17] Simplify syncing with master, Richard Henderson, 2020/05/18
- [RISU v2 13/17] Split RES_MISMATCH for registers and memory, Richard Henderson, 2020/05/18
- [RISU v2 14/17] Add magic and size to the trace header, Richard Henderson, 2020/05/18
- [RISU v2 15/17] Compute reginfo_size based on the reginfo, Richard Henderson, 2020/05/18
- Re: [RISU v2 15/17] Compute reginfo_size based on the reginfo,
Alex Bennée <=
- [RISU v2 16/17] aarch64: Reorg sve reginfo to save space, Richard Henderson, 2020/05/18
- [RISU v2 17/17] Add --dump option to inspect trace files, Richard Henderson, 2020/05/18