From d5c600406c6d8d0a8771255b777688bd0ab2fa37 Mon Sep 17 00:00:00 2001 From: pkoning Date: Tue, 7 Dec 2010 19:55:07 +0000 Subject: [PATCH] * config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative values with sign rather than as unsigned. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167566 138bc75d-0d04-0410-961f-82ee72b054a4 --- 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 2617d30853f..bb220f0ac2f 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: -- 2.11.0