aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/config/elfos.h9
-rw-r--r--gcc/config/fp-bit.c21
-rw-r--r--gcc/config/ns32k/ns32k.h6
-rw-r--r--gcc/config/sh/elf.h8
5 files changed, 32 insertions, 24 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 53c413a..67ed4eb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,15 @@
+2000-02-26 Geoff Keating <geoffk@cygnus.com>
+
+ * 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 <kenner@vlsi1.ultra.nyu.edu>
* toplev.c (documented_lang_options): Correct spelling error.
diff --git a/gcc/config/elfos.h b/gcc/config/elfos.h
index 1021954..91c3677 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 8e9df1c..4d894e7 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 92a35da..d39ce85 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 3fda1b6..ff57fca 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 <ian@cygnus.com>.
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))