From 6b208988ad7a00e531e9807966d724b511cee25d Mon Sep 17 00:00:00 2001 From: Paul Koning <pkoning@gcc.gnu.org> Date: Tue, 7 Dec 2010 14:55:07 -0500 Subject: [PATCH] pdp11.c (output_addr_const_pdp11): Output negative values with sign rather than as unsigned. * config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative values with sign rather than as unsigned. From-SVN: r167566 --- gcc/config/pdp11/pdp11.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/gcc/config/pdp11/pdp11.c b/gcc/config/pdp11/pdp11.c index 2617d30853fd..bb220f0ac2f8 100644 --- a/gcc/config/pdp11/pdp11.c +++ b/gcc/config/pdp11/pdp11.c @@ -1881,7 +1881,8 @@ void output_addr_const_pdp11 (FILE *file, rtx x) { char buf[256]; - + int i; + restart: switch (GET_CODE (x)) { @@ -1905,7 +1906,13 @@ output_addr_const_pdp11 (FILE *file, rtx x) break; case CONST_INT: - fprintf (file, "%#o", (int) INTVAL (x) & 0xffff); + i = INTVAL (x); + if (i < 0) + { + i = -i; + fprintf (file, "-"); + } + fprintf (file, "%#o", i & 0xffff); break; case CONST: @@ -1953,16 +1960,10 @@ output_addr_const_pdp11 (FILE *file, rtx x) goto restart; output_addr_const_pdp11 (file, XEXP (x, 0)); - fprintf (file, "-"); - if (GET_CODE (XEXP (x, 1)) == CONST_INT - && INTVAL (XEXP (x, 1)) < 0) - { - fprintf (file, targetm.asm_out.open_paren); - output_addr_const_pdp11 (file, XEXP (x, 1)); - fprintf (file, targetm.asm_out.close_paren); - } - else - output_addr_const_pdp11 (file, XEXP (x, 1)); + if (GET_CODE (XEXP (x, 1)) != CONST_INT + || INTVAL (XEXP (x, 1)) >= 0) + fprintf (file, "-"); + output_addr_const_pdp11 (file, XEXP (x, 1)); break; case ZERO_EXTEND: -- GitLab