/* Definitions of various defaults for how to do assembler output
(most of which are designed to be appropriate for GAS or for
some BSD assembler).
- Copyright (C) 1992, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1992, 1996, 1997, 1998, 1999, 2000
+ Free Software Foundation, Inc.
Contributed by Ron Guilmette (rfg@monkeys.com)
This file is part of GNU CC.
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+#ifndef GCC_DEFAULTS_H
+#define GCC_DEFAULTS_H
+
/* Store in OUTPUT a string (made with alloca) containing
an assembler-name for a local static variable or function named NAME.
LABELNO is an integer which is different for each call. */
#endif
#ifndef ASM_STABD_OP
-#define ASM_STABD_OP ".stabd"
+#define ASM_STABD_OP "\t.stabd\t"
#endif
/* This is how to output an element of a case-vector that is absolute.
register int c = p[i]; \
if (c == '\"' || c == '\\') \
putc ('\\', asm_out_file); \
- if (c >= ' ' && c < 0177) \
+ if (ISPRINT(c)) \
putc (c, asm_out_file); \
else \
{ \
#ifdef SET_ASM_OP
#ifndef ASM_OUTPUT_DEF
#define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2) \
- do { fprintf ((FILE), "\t%s\t", SET_ASM_OP); \
+ do { fprintf ((FILE), "%s", SET_ASM_OP); \
assemble_name (FILE, LABEL1); \
fprintf (FILE, ","); \
assemble_name (FILE, LABEL2); \
#define ASM_OUTPUT_LABELREF(FILE,NAME) asm_fprintf ((FILE), "%U%s", (NAME))
#endif
+/* Allow target to print debug info labels specially. This is useful for
+ VLIW targets, since debug info labels should go into the middle of
+ instruction bundles instead of breaking them. */
+
+#ifndef ASM_OUTPUT_DEBUG_LABEL
+#define ASM_OUTPUT_DEBUG_LABEL(FILE, PREFIX, NUM) \
+ ASM_OUTPUT_INTERNAL_LABEL (FILE, PREFIX, NUM)
+#endif
+
/* This determines whether or not we support weak symbols. */
#ifndef SUPPORTS_WEAK
#ifdef ASM_WEAKEN_LABEL
# else
/* If we aren't using crtstuff to run ctors, don't use it for EH. */
# if defined (ASM_OUTPUT_SECTION_NAME) && defined (ASM_OUTPUT_CONSTRUCTOR)
-# define EH_FRAME_SECTION_ASM_OP ".section\t.eh_frame,\"aw\""
+# define EH_FRAME_SECTION_ASM_OP "\t.section\t.eh_frame,\"aw\""
# define EH_FRAME_SECTION() \
do { named_section (NULL_TREE, ".eh_frame", 0); } while (0)
# endif
#ifndef DWARF_FRAME_REGISTERS
#define DWARF_FRAME_REGISTERS FIRST_PSEUDO_REGISTER
#endif
+
+/* Default sizes for base C types. If the sizes are different for
+ your target, you should override these values by defining the
+ appropriate symbols in your tm.h file. */
+
+#ifndef CHAR_TYPE_SIZE
+#define CHAR_TYPE_SIZE BITS_PER_UNIT
+#endif
+
+#ifndef SHORT_TYPE_SIZE
+#define SHORT_TYPE_SIZE (BITS_PER_UNIT * MIN ((UNITS_PER_WORD + 1) / 2, 2))
+#endif
+
+#ifndef INT_TYPE_SIZE
+#define INT_TYPE_SIZE BITS_PER_WORD
+#endif
+
+#ifndef LONG_TYPE_SIZE
+#define LONG_TYPE_SIZE BITS_PER_WORD
+#endif
+
+#ifndef LONG_LONG_TYPE_SIZE
+#define LONG_LONG_TYPE_SIZE (BITS_PER_WORD * 2)
+#endif
+
+#ifndef WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE INT_TYPE_SIZE
+#endif
+
+#ifndef WCHAR_UNSIGNED
+#define WCHAR_UNSIGNED 0
+#endif
+
+#ifndef FLOAT_TYPE_SIZE
+#define FLOAT_TYPE_SIZE BITS_PER_WORD
+#endif
+
+#ifndef DOUBLE_TYPE_SIZE
+#define DOUBLE_TYPE_SIZE (BITS_PER_WORD * 2)
+#endif
+
+#ifndef LONG_DOUBLE_TYPE_SIZE
+#define LONG_DOUBLE_TYPE_SIZE (BITS_PER_WORD * 2)
+#endif
+
+#endif /* GCC_DEFAULTS_H */
+