From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id mvV3LpZy0F/JCQAAWB0awg (envelope-from ) for ; Wed, 09 Dec 2020 01:45:42 -0500 Received: by simark.ca (Postfix, from userid 112) id B1D871F0A9; Wed, 9 Dec 2020 01:45:42 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 957F91EF4B for ; Wed, 9 Dec 2020 01:45:41 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B9AE0386F43A; Wed, 9 Dec 2020 06:45:40 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B9AE0386F43A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1607496340; bh=+UolCWUf5byPNEEK9w/tyAd8guNXMniszav9Zh471uo=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=jSD1Ft2lkpwnneGb8LY214nHfsfkreyBq9+JI8FxZuZaTNmncTFKnDClkn/1i0jJ1 OFkvqw69D3bsPjQhd54A5VV4hq667sSjfwfe0gNcR/cfv08OgB/y22bKXi7/19M+FP r1O3AccN/pr8fmnxQ2QiFEg9UOzk2TQtJXk97O5Y= Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by sourceware.org (Postfix) with ESMTP id 85B4B386F02C for ; Wed, 9 Dec 2020 06:45:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 85B4B386F02C Received: from vapier.lan (localhost [127.0.0.1]) by smtp.gentoo.org (Postfix) with ESMTP id 7B760340AA7 for ; Wed, 9 Dec 2020 06:45:37 +0000 (UTC) To: gdb-patches@sourceware.org Subject: [PATCH] sim: common: add align_{up,down} to match gdb Date: Wed, 9 Dec 2020 01:45:28 -0500 Message-Id: <20201209064528.2661-1-vapier@gentoo.org> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Mike Frysinger via Gdb-patches Reply-To: Mike Frysinger Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" 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 + + * interp.c: Change ALIGN to align_up. + * sim-main.h (ALIGN): Delete + 2020-08-21 Simon Marchi * 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 + + * 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 * 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