diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 53c413a42ae..67ed4eb364b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2000-02-26 Geoff Keating + + * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define. The default + is right for most ELF targets. + * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define. + Let the default file use %U properly. + * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define. Use the + default. + + * config/fp-bit.c (pack_d): Properly handle rounding of denormal + numbers. + Sat Feb 26 09:39:16 2000 Richard Kenner * toplev.c (documented_lang_options): Correct spelling error. diff --git a/gcc/config/elfos.h b/gcc/config/elfos.h index 102195493d3..91c36775421 100644 --- a/gcc/config/elfos.h +++ b/gcc/config/elfos.h @@ -84,15 +84,6 @@ Boston, MA 02111-1307, USA. */ #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG #endif -/* This is how to output a reference to a user-level label named NAME. - `assemble_name' uses this. - - For most ELF systems the convention is *not* to prepend a leading - underscore onto user-level symbol names. */ - -#undef ASM_OUTPUT_LABELREF -#define ASM_OUTPUT_LABELREF(FILE,NAME) fprintf (FILE, "%s", NAME) - /* All SVR4 targets use the ELF object file format. */ #define OBJECT_FORMAT_ELF diff --git a/gcc/config/fp-bit.c b/gcc/config/fp-bit.c index 8e9df1c848e..4d894e76707 100644 --- a/gcc/config/fp-bit.c +++ b/gcc/config/fp-bit.c @@ -502,8 +502,25 @@ pack_d ( fp_number_type * src) } else { - /* Shift by the value */ - fraction >>= shift; + int lowbit = (fraction & ((1 << shift) - 1)) ? 1 : 0; + fraction = (fraction >> shift) | lowbit; + } + if ((fraction & GARDMASK) == GARDMSB) + { + if ((fraction & (1 << NGARDS))) + fraction += GARDROUND + 1; + } + else + { + /* Add to the guards to round up. */ + fraction += GARDROUND; + } + /* Perhaps the rounding means we now need to change the + exponent. */ + if (fraction >= IMPLICIT_2) + { + fraction >>= 1; + exp += 1; } fraction >>= NGARDS; } diff --git a/gcc/config/ns32k/ns32k.h b/gcc/config/ns32k/ns32k.h index 92a35dab19c..d39ce857007 100644 --- a/gcc/config/ns32k/ns32k.h +++ b/gcc/config/ns32k/ns32k.h @@ -1590,12 +1590,6 @@ do { \ } while (0) #endif -/* This is how to output a reference to a user-level label named NAME. - `assemble_name' uses this. */ - -#define ASM_OUTPUT_LABELREF(FILE,NAME) \ - fprintf (FILE, "_%s", NAME) - /* This is how to output an internal numbered label where PREFIX is the class of label and NUM is the number within the class. */ diff --git a/gcc/config/sh/elf.h b/gcc/config/sh/elf.h index 3fda1b6f259..ff57fca6171 100644 --- a/gcc/config/sh/elf.h +++ b/gcc/config/sh/elf.h @@ -1,5 +1,5 @@ /* Definitions of target machine for gcc for Hitachi Super-H using ELF. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc. Contributed by Ian Lance Taylor . This file is part of GNU CC. @@ -76,12 +76,6 @@ Boston, MA 02111-1307, USA. */ #define DBX_REGISTER_NUMBER(REGNO) \ (((REGNO) >= 22 && (REGNO) <= 39) ? ((REGNO) + 1) : (REGNO)) -/* SH ELF, unlike most ELF implementations, uses underscores before - symbol names. */ -#undef ASM_OUTPUT_LABELREF -#define ASM_OUTPUT_LABELREF(STREAM,NAME) \ - asm_fprintf (STREAM, "%U%s", NAME) - #undef ASM_GENERATE_INTERNAL_LABEL #define ASM_GENERATE_INTERNAL_LABEL(STRING, PREFIX, NUM) \ sprintf ((STRING), "*%s%s%ld", LOCAL_LABEL_PREFIX, (PREFIX), (long)(NUM))