Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Andrew Burgess <andrew.burgess@embecosm.com>
To: Mike Frysinger <vapier@gentoo.org>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH] sim: common: add align_{up,down} to match gdb
Date: Wed, 9 Dec 2020 10:53:24 +0000	[thread overview]
Message-ID: <20201209105324.GA2945@embecosm.com> (raw)
In-Reply-To: <20201209064528.2661-1-vapier@gentoo.org>

* Mike Frysinger via Gdb-patches <gdb-patches@sourceware.org> [2020-12-09 01:45:28 -0500]:

> We have ALIGN_{8,16,PAGE} and FLOOR_PAGE macros (where PAGE is defined as
> 4k) which were imported from the ppc sim.  But no other sim utilizes these
> and hardcoding the sizes in the name is a bit limiting.
> 
> Let's delete these and import the two general macros that gdb uses:
> 	align_up(addr, bytes)
> 	align_down(addr, bytes)
> 
> This in turn allows us to cut over the Blackfin code immediately.
> ---
>  sim/bfin/ChangeLog    |  5 +++++
>  sim/bfin/interp.c     |  7 ++++---
>  sim/bfin/sim-main.h   |  2 --
>  sim/common/ChangeLog  |  6 ++++++
>  sim/common/sim-bits.h | 17 ++++-------------
>  5 files changed, 19 insertions(+), 18 deletions(-)
> 
> diff --git a/sim/bfin/ChangeLog b/sim/bfin/ChangeLog
> index 18f287323126..2384009cab80 100644
> --- a/sim/bfin/ChangeLog
> +++ b/sim/bfin/ChangeLog
> @@ -1,3 +1,8 @@
> +2020-12-09  Mike Frysinger  <vapier@gentoo.org>
> +
> +	* interp.c: Change ALIGN to align_up.
> +	* sim-main.h (ALIGN): Delete

LGTM.

Thanks,
Andrew


> +
>  2020-08-21  Simon Marchi  <simon.marchi@polymtl.ca>
>  
>  	* configure.ac: Include config/pkg.m4.
> diff --git a/sim/bfin/interp.c b/sim/bfin/interp.c
> index d884d1025c55..60ed6d73c393 100644
> --- a/sim/bfin/interp.c
> +++ b/sim/bfin/interp.c
> @@ -289,7 +289,7 @@ bfin_syscall (SIM_CPU *cpu)
>  	sc.result = heap;
>  	heap += sc.arg2;
>  	/* Keep it page aligned.  */
> -	heap = ALIGN (heap, 4096);
> +	heap = align_up (heap, 4096);
>  
>  	break;
>        }
> @@ -948,7 +948,8 @@ bfin_fdpic_load (SIM_DESC sd, SIM_CPU *cpu, struct bfd *abfd, bu32 *sp,
>        }
>  
>    /* Update the load offset with a few extra pages.  */
> -  fdpic_load_offset = ALIGN (max (max_load_addr, fdpic_load_offset), 0x10000);
> +  fdpic_load_offset = align_up (max (max_load_addr, fdpic_load_offset),
> +				0x10000);
>    fdpic_load_offset += 0x10000;
>  
>    /* Push the summary loadmap info onto the stack last.  */
> @@ -1074,7 +1075,7 @@ bfin_user_init (SIM_DESC sd, SIM_CPU *cpu, struct bfd *abfd,
>      env_flat += strlen (env[i]);
>  
>    /* Push the Auxiliary Vector Table between argv/env and actual strings.  */
> -  sp_flat = sp = ALIGN (SPREG - argv_flat - env_flat - 4, 4);
> +  sp_flat = sp = align_up (SPREG - argv_flat - env_flat - 4, 4);
>    if (auxvt)
>      {
>  # define AT_PUSH(at, val) \
> diff --git a/sim/bfin/sim-main.h b/sim/bfin/sim-main.h
> index e9fe76ed2c28..ed3ac80929de 100644
> --- a/sim/bfin/sim-main.h
> +++ b/sim/bfin/sim-main.h
> @@ -53,9 +53,7 @@ struct sim_state {
>  #include "dv-bfin_trace.h"
>  
>  #undef CLAMP
> -#undef ALIGN
>  #define CLAMP(a, b, c) min (max (a, b), c)
> -#define ALIGN(addr, size) (((addr) + ((size)-1)) & ~((size)-1))
>  
>  /* TODO: Move all this trace logic to the common code.  */
>  #define BFIN_TRACE_CORE(cpu, addr, size, map, val) \
> diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
> index 2c71b1359042..98649924809e 100644
> --- a/sim/common/ChangeLog
> +++ b/sim/common/ChangeLog
> @@ -1,3 +1,9 @@
> +2020-12-09  Mike Frysinger  <vapier@gentoo.org>
> +
> +	* sim-bits.h (_ALIGNa, _FLOORa, ALIGN_8, ALIGN_16, ALIGN_PAGE,
> +	FLOOR_PAGE): Delete unused macros.
> +	(align_up, align_down): Define.
> +
>  2020-08-10  Tom de Vries  <tdevries@suse.de>
>  
>  	* sim-cpu.c: Include stdlib.h for free.
> diff --git a/sim/common/sim-bits.h b/sim/common/sim-bits.h
> index 4b9de3796359..43f459cf8f4b 100644
> --- a/sim/common/sim-bits.h
> +++ b/sim/common/sim-bits.h
> @@ -92,11 +92,8 @@
>     EXTEND*(VALUE): Convert the `*' bit value to the targets natural
>     word size.  Sign extend the value if needed.
>  
> -   ALIGN_*(VALUE): Round the value upwards so that it is aligned to a
> -   `_*' byte boundary.
> -
> -   FLOOR_*(VALUE): Truncate the value so that it is aligned to a `_*'
> -   byte boundary.
> +   align_*(VALUE, BYTES): Round the value so that it is aligned to a
> +   BYTES boundary.
>  
>     ROT*(VALUE, NR_BITS): Return the `*' bit VALUE rotated by NR_BITS
>     right (positive) or left (negative).
> @@ -525,14 +522,8 @@ INLINE_SIM_BITS(unsigned_word) MSINSERTED (unsigned_word val, int start, int sto
>  
>  
>  /* memory alignment macro's */
> -#define _ALIGNa(A,X)  (((X) + ((A) - 1)) & ~((A) - 1))
> -#define _FLOORa(A,X)  ((X) & ~((A) - 1))
> -
> -#define ALIGN_8(X)	_ALIGNa (8, X)
> -#define ALIGN_16(X)	_ALIGNa (16, X)
> -
> -#define ALIGN_PAGE(X)	_ALIGNa (0x1000, X)
> -#define FLOOR_PAGE(X)   ((X) & ~(0x1000 - 1))
> +#define align_up(v, n)		(((v) + (n) - 1) & -(n))
> +#define align_down(v, n)	((v) & -(n))
>  
>  
>  /* bit bliting macro's */
> -- 
> 2.28.0
> 

      reply	other threads:[~2020-12-09 10:53 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-09  6:45 Mike Frysinger via Gdb-patches
2020-12-09 10:53 ` Andrew Burgess [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201209105324.GA2945@embecosm.com \
    --to=andrew.burgess@embecosm.com \
    --cc=gdb-patches@sourceware.org \
    --cc=vapier@gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox