diff options
author | Mike Frysinger <vapier@gentoo.org> | 2015-06-20 15:21:26 +0545 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2015-11-22 01:37:24 -0500 |
commit | 37258e9950490293bb00808a55d82dea640efe6c (patch) | |
tree | ce422f45d5576a101c5549fea979d4ba185d75fb | |
parent | 82d442c6c67e42c1697b07aa7ac2b323baf333c0 (diff) | |
download | gdb-37258e9950490293bb00808a55d82dea640efe6c.zip gdb-37258e9950490293bb00808a55d82dea640efe6c.tar.gz gdb-37258e9950490293bb00808a55d82dea640efe6c.tar.bz2 |
sim: common: add PRI printf defines
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.
-rw-r--r-- | sim/common/ChangeLog | 8 | ||||
-rw-r--r-- | sim/common/sim-types.h | 20 |
2 files changed, 28 insertions, 0 deletions
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 <vapier@gentoo.org> + + * 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 <vapier@gentoo.org> * 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 |