From patchwork Sun Nov 22 06:40:29 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Frysinger X-Patchwork-Id: 9772 X-Patchwork-Delegate: vapier@gentoo.org Received: (qmail 51184 invoked by alias); 22 Nov 2015 06:40:39 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 51144 invoked by uid 89); 22 Nov 2015 06:40:34 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 X-HELO: smtp.gentoo.org Received: from smtp.gentoo.org (HELO smtp.gentoo.org) (140.211.166.183) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Sun, 22 Nov 2015 06:40:33 +0000 Received: from localhost.localdomain (localhost [127.0.0.1]) by smtp.gentoo.org (Postfix) with ESMTP id D2D413407D7 for ; Sun, 22 Nov 2015 06:40:30 +0000 (UTC) From: Mike Frysinger To: gdb-patches@sourceware.org Subject: [PATCH] sim: common: add PRI printf defines [committed] Date: Sun, 22 Nov 2015 01:40:29 -0500 Message-Id: <1448174429-3980-1-git-send-email-vapier@gentoo.org> In-Reply-To: <1434909729-6766-1-git-send-email-vapier@gentoo.org> References: <1434909729-6766-1-git-send-email-vapier@gentoo.org> X-IsSubscribed: yes Keeping track of the right printf formats for the various types can be a pretty big hassle, especially in common code which has to support a variety of bitsizes. Take a page from the existing standards and add a set of PRI macros which hide the details in a common header. --- Note: This version I switched to the XCONCAT defines. sim/common/ChangeLog | 8 ++++++++ sim/common/sim-types.h | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index ddf4558..464fd80 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,3 +1,11 @@ +2015-11-21 Mike Frysinger + + * sim-types.h (SIM_PRI_TB): Define. + (PRI_TW, PRIiTW, PRIxTW): New PRI target word defines. + (PRI_TA, PRIiTA, PRIxTA): New PRI target address defines. + (PRI_TC, PRIiTC, PRIxTC): New PRI target cell defines. + (PRI_TF, PRIiTF, PRIxTF): New PRI target floating point defines. + 2015-11-17 Mike Frysinger * sim-main.h (WITH_MODULO_MEMORY): Delete. diff --git a/sim/common/sim-types.h b/sim/common/sim-types.h index 862f4e0..7e0a34a 100644 --- a/sim/common/sim-types.h +++ b/sim/common/sim-types.h @@ -87,6 +87,10 @@ typedef unsigned64 unsigned_8; typedef unsigned128 unsigned_16; +/* Macros for printf. Usage is restricted to this header. */ +#define SIM_PRI_TB(t, b) XCONCAT3 (PRI,t,b) + + /* for general work, the following are defined */ /* unsigned: >= 32 bits */ /* signed: >= 32 bits */ @@ -107,6 +111,10 @@ typedef unsigned16 unsigned_word; typedef signed16 signed_word; #endif +#define PRI_TW(t) SIM_PRI_TB (t, WITH_TARGET_WORD_BITSIZE) +#define PRIiTW PRI_TW (i) +#define PRIxTW PRI_TW (x) + /* Other instructions */ #if (WITH_TARGET_ADDRESS_BITSIZE == 64) @@ -123,6 +131,10 @@ typedef signed16 signed_address; #endif typedef unsigned_address address_word; +#define PRI_TA(t) SIM_PRI_TB (t, WITH_TARGET_ADDRESS_BITSIZE) +#define PRIiTA PRI_TA (i) +#define PRIxTA PRI_TA (x) + /* IEEE 1275 cell size */ #if (WITH_TARGET_CELL_BITSIZE == 64) @@ -135,6 +147,10 @@ typedef signed32 signed_cell; #endif typedef signed_cell cell_word; /* cells are normally signed */ +#define PRI_TC(t) SIM_PRI_TB (t, WITH_TARGET_CELL_BITSIZE) +#define PRIiTC PRI_TC (i) +#define PRIxTC PRI_TC (x) + /* Floating point registers */ #if (WITH_TARGET_FLOATING_POINT_BITSIZE == 64) @@ -144,4 +160,8 @@ typedef unsigned64 fp_word; typedef unsigned32 fp_word; #endif +#define PRI_TF(t) SIM_PRI_TB (t, WITH_TARGET_FLOATING_POINT_BITSIZE) +#define PRIiTF PRI_TF (i) +#define PRIxTF PRI_TF (x) + #endif