From: Michael Beck Date: Thu, 30 Jun 2005 07:59:11 +0000 (+0000) Subject: added %= for printing a pn_Cmp value X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=9cdfab88f2ef8df5ab154ad9e107f0a56a2eda00;p=libfirm added %= for printing a pn_Cmp value if a node is a Const, dump it's tarval typos fixed [r6133] --- diff --git a/ir/ir/irargs.c b/ir/ir/irargs.c index 0e01f79be..48782f411 100644 --- a/ir/ir/irargs.c +++ b/ir/ir/irargs.c @@ -6,7 +6,7 @@ * Modified by: * Created: * CVS-ID: $Id$ - * Copyright: (c) 1998-2005 Universit�t Karlsruhe + * Copyright: (c) 1998-2005 Universitaet Karlsruhe * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. */ @@ -115,7 +115,14 @@ static int firm_emit(appendable_t *app, const arg_occ_t *occ, const arg_value_t snprintf(buf, sizeof(buf), "%ld", get_irn_node_nr(X)); break; default: - snprintf(buf, sizeof(buf), "%s%s%s", A("irn"), get_irn_opname(X), + if (is_Const(irn)) { + char tbuf[128]; + tarval_snprintf(tv, sizeof(tv), X); + snprintf(buf, sizeof(buf), "%s%s%s<%s>", A("irn"), get_irn_opname(X), + get_mode_name(get_irn_mode(X)), tbuf); + } + else + snprintf(buf, sizeof(buf), "%s%s%s", A("irn"), get_irn_opname(X), get_mode_name(get_irn_mode(X))); snprintf(add, sizeof(add), "[%ld]", get_irn_node_nr(X)); } @@ -169,8 +176,6 @@ static int firm_emit_ident(appendable_t *app, const arg_occ_t *occ, const arg_va return arg_append(app, occ, p, strlen(p)); } - - /** * Emit indent. */ @@ -185,6 +190,18 @@ static int firm_emit_indent(appendable_t *app, const arg_occ_t *occ, const arg_v return amount; } +/** + * Emit pnc. + */ +static int firm_emit_pnc(appendable_t *app, const arg_occ_t *occ, const arg_value_t *arg) +{ + int i; + int value = arg->v_int; + const char *p = get_pnc_string(value); + + return arg_append(app, occ, p, strlen(p)); +} + arg_env_t *firm_get_arg_env(void) { #define X(name, letter) {"firm:" name, letter} @@ -194,6 +211,7 @@ arg_env_t *firm_get_arg_env(void) static arg_handler_t firm_handler = { firm_get_arg_type, firm_emit }; static arg_handler_t ident_handler = { firm_get_arg_type, firm_emit_ident }; static arg_handler_t indent_handler = { firm_get_arg_type_int, firm_emit_indent }; + static arg_handler_t pnc_handler = { firm_get_arg_type_int, firm_emit_pnc }; static arg_handler_t bitset_handler = { bitset_get_arg_type, bitset_emit }; static struct { @@ -209,6 +227,7 @@ arg_env_t *firm_get_arg_env(void) X("irn_nr", 'N'), X("mode", 'm'), X("block", 'B'), + X("pnc", '='), }; int i; diff --git a/ir/ir/irprintf.c b/ir/ir/irprintf.c index 49baca2c4..1a27640e2 100644 --- a/ir/ir/irprintf.c +++ b/ir/ir/irprintf.c @@ -447,8 +447,15 @@ static void ir_common_vprintf(const appender_t *app, void *object, case 'n': { ir_node *irn = va_arg(args, ir_node *); - if(irn) - snprintf(buf, sizeof(buf), "%s%s:%ld", + if (irn) + if (is_Const(irn)) { + char tbuf[128]; + tarval_snprintf(tbuf, sizeof(tbuf), get_Const_tarval(irn)); + snprintf(buf, sizeof(buf), "%s%s<%s>:%ld", + get_irn_opname(irn), get_mode_name(get_irn_mode(irn)), tbuf, get_irn_node_nr(irn)); + } + else + snprintf(buf, sizeof(buf), "%s%s:%ld", get_irn_opname(irn), get_mode_name(get_irn_mode(irn)), get_irn_node_nr(irn)); else strncpy(buf, STRNIL, sizeof(buf)); @@ -522,6 +529,10 @@ static void ir_common_vprintf(const appender_t *app, void *object, /* clean the buffer again */ buf[0] = '\0'; break; + + case '=': + str = get_pnc_string(va_arg(args, int)); + break; } dump_with_settings(app, object, limit, &settings, str); @@ -536,7 +547,7 @@ static void ir_common_vprintf(const appender_t *app, void *object, } /** - * Convencience for stdout dumping. + * Convenience for stdout dumping. */ void ir_printf(const char *fmt, ...) { @@ -547,7 +558,7 @@ void ir_printf(const char *fmt, ...) } /** - * Convencience for file dumping. + * Convenience for file dumping. */ void ir_fprintf(FILE *f, const char *fmt, ...) { @@ -558,7 +569,7 @@ void ir_fprintf(FILE *f, const char *fmt, ...) } /** - * Convencience for string dumping. + * Convenience for string dumping. */ void ir_snprintf(char *buf, size_t len, const char *fmt, ...) { @@ -569,7 +580,7 @@ void ir_snprintf(char *buf, size_t len, const char *fmt, ...) } /** - * Convencience for string dumping. + * Convenience for string dumping. */ void ir_obst_printf(struct obstack *obst, const char *fmt, ...) { @@ -599,7 +610,7 @@ void ir_obst_vprintf(struct obstack *obst, const char *fmt, va_list args) ir_common_vprintf(&obst_appender, obst, 0, fmt, args); } -#else +#else /* WITH_LIBCORE */ #include "irargs_t.h"