diff options
author | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1996-01-11 20:00:10 +0000 |
---|---|---|
committer | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1996-01-11 20:00:10 +0000 |
commit | 694179218fb686748d911a2d09a056c6cbbb0f2e (patch) | |
tree | 1afb2177185a719befabe7076a6883f3ab29b68b /gnu | |
parent | 354c48c85d3dd802fda9130c7339ed83edc1bf71 (diff) |
Remove obsolete GCC
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/usr.bin/gcc2/arch/Makefile.inc | 99 | ||||
-rw-r--r-- | gnu/usr.bin/gcc2/arch/genattr.c | 436 | ||||
-rw-r--r-- | gnu/usr.bin/gcc2/arch/i386/tm.h | 179 | ||||
-rw-r--r-- | gnu/usr.bin/gcc2/arch/i386/unix.h | 148 |
4 files changed, 0 insertions, 862 deletions
diff --git a/gnu/usr.bin/gcc2/arch/Makefile.inc b/gnu/usr.bin/gcc2/arch/Makefile.inc deleted file mode 100644 index 16b0ee3de8e..00000000000 --- a/gnu/usr.bin/gcc2/arch/Makefile.inc +++ /dev/null @@ -1,99 +0,0 @@ -# $Id: Makefile.inc,v 1.1 1995/10/18 08:39:15 deraadt Exp $ - -CFLAGS+= -I${.CURDIR}/../../common -I${.CURDIR}/.. -I${.CURDIR} # -DIN_GCC -.PATH: ${.CURDIR}/../../common ${.CURDIR}/.. - - -.MAIN: stamp-flags stamp-config stamp-codes stamp-output stamp-recog \ - stamp-emit stamp-extract stamp-peep stamp-attr stamp-attrtab \ - stamp-opinit - - -stamp-flags: ${.CURDIR}/md genflags ${.CURDIR}/../move-if-change - ./genflags ${.CURDIR}/md > tmp-flags.h - ${.CURDIR}/../move-if-change tmp-flags.h ${.CURDIR}/insn-flags.h - touch stamp-flags - -stamp-config: ${.CURDIR}/md genconfig ${.CURDIR}/../move-if-change - ./genconfig ${.CURDIR}/md > tmp-config.h - ${.CURDIR}/../move-if-change tmp-config.h ${.CURDIR}/insn-config.h - touch stamp-config - -stamp-codes: ${.CURDIR}/md gencodes ${.CURDIR}/../move-if-change - ./gencodes ${.CURDIR}/md > tmp-codes.h - ${.CURDIR}/../move-if-change tmp-codes.h ${.CURDIR}/insn-codes.h - touch stamp-codes - -stamp-output: ${.CURDIR}/md genoutput ${.CURDIR}/../move-if-change - ./genoutput ${.CURDIR}/md > tmp-output.c - ${.CURDIR}/../move-if-change tmp-output.c ${.CURDIR}/insn-output.c - touch stamp-output - -stamp-recog: ${.CURDIR}/md genrecog ${.CURDIR}/../move-if-change - ./genrecog ${.CURDIR}/md > tmp-recog.c - ${.CURDIR}/../move-if-change tmp-recog.c ${.CURDIR}/insn-recog.c - touch stamp-recog - -stamp-emit: ${.CURDIR}/md genemit ${.CURDIR}/../move-if-change - ./genemit ${.CURDIR}/md > tmp-emit.c - ${.CURDIR}/../move-if-change tmp-emit.c ${.CURDIR}/insn-emit.c - touch stamp-emit - -stamp-extract: ${.CURDIR}/md genextract ${.CURDIR}/../move-if-change - ./genextract ${.CURDIR}/md > tmp-extract.c - ${.CURDIR}/../move-if-change tmp-extract.c ${.CURDIR}/insn-extract.c - touch stamp-extract - -stamp-peep: ${.CURDIR}/md genpeep ${.CURDIR}/../move-if-change - ./genpeep ${.CURDIR}/md > tmp-peep.c - ${.CURDIR}/../move-if-change tmp-peep.c ${.CURDIR}/insn-peep.c - touch stamp-peep - -stamp-attr: ${.CURDIR}/md genattr ${.CURDIR}/../move-if-change - ./genattr ${.CURDIR}/md > tmp-attr.h - ${.CURDIR}/../move-if-change tmp-attr.h ${.CURDIR}/insn-attr.h - touch stamp-attr - -stamp-attrtab: ${.CURDIR}/md genattrtab ${.CURDIR}/../move-if-change - ./genattrtab ${.CURDIR}/md > tmp-attrtab.c - ${.CURDIR}/../move-if-change tmp-attrtab.c ${.CURDIR}/insn-attrtab.c - touch stamp-attrtab - -stamp-opinit: ${.CURDIR}/md genopinit ${.CURDIR}/../move-if-change - ./genopinit ${.CURDIR}/md > tmp-opinit.c - ${.CURDIR}/../move-if-change tmp-opinit.c ${.CURDIR}/insn-opinit.c - touch stamp-opinit - - -genflags: genflags.o rtl.o obstack.o - ${CC} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} - -genconfig: genconfig.o rtl.o obstack.o - ${CC} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} - -gencodes: gencodes.o rtl.o obstack.o - ${CC} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} - -genoutput: genoutput.o rtl.o obstack.o - ${CC} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} - -genrecog: genrecog.o rtl.o obstack.o - ${CC} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} - -genemit: genemit.o rtl.o obstack.o - ${CC} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} - -genextract: genextract.o rtl.o obstack.o - ${CC} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} - -genpeep: genpeep.o rtl.o obstack.o - ${CC} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} - -genattr: genattr.o rtl.o obstack.o - ${CC} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} - -genattrtab: genattrtab.o rtl.o print-rtl.o rtlanal.o obstack.o - ${CC} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} - -genopinit: genopinit.o rtl.o obstack.o - ${CC} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} diff --git a/gnu/usr.bin/gcc2/arch/genattr.c b/gnu/usr.bin/gcc2/arch/genattr.c deleted file mode 100644 index 59c55754156..00000000000 --- a/gnu/usr.bin/gcc2/arch/genattr.c +++ /dev/null @@ -1,436 +0,0 @@ -/* Generate attribute information (insn-attr.h) from machine description. - Copyright (C) 1991 Free Software Foundation, Inc. - Contributed by Richard Kenner (kenner@nyu.edu) - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#ifndef lint -static char rcsid[] = "$Id: genattr.c,v 1.1 1995/10/18 08:39:15 deraadt Exp $"; -#endif /* not lint */ - -#include <stdio.h> -#include "config.h" -#include "rtl.h" -#include "obstack.h" - -static struct obstack obstack; -struct obstack *rtl_obstack = &obstack; - -#define obstack_chunk_alloc xmalloc -#define obstack_chunk_free free - -extern void free PROTO((void *)); -extern int atoi PROTO((char *)); -extern rtx read_rtx PROTO((FILE *)); - -char *xmalloc PROTO((unsigned)); -static void fatal (); -void fancy_abort PROTO((void)); - -/* A range of values. */ - -struct range -{ - int min; - int max; -}; - -/* Record information about each function unit mentioned in a - DEFINE_FUNCTION_UNIT. */ - -struct function_unit -{ - char *name; /* Function unit name. */ - struct function_unit *next; /* Next function unit. */ - int multiplicity; /* Number of units of this type. */ - int simultaneity; /* Maximum number of simultaneous insns - on this function unit or 0 if unlimited. */ - struct range ready_cost; /* Range of ready cost values. */ - struct range issue_delay; /* Range of issue delay values. */ -}; - -static void -extend_range (range, min, max) - struct range *range; - int min; - int max; -{ - if (range->min > min) range->min = min; - if (range->max < max) range->max = max; -} - -static void -init_range (range) - struct range *range; -{ - range->min = 100000; - range->max = -1; -} - -static void -write_upcase (str) - char *str; -{ - for (; *str; str++) - if (*str >= 'a' && *str <= 'z') - printf ("%c", *str - 'a' + 'A'); - else - printf ("%c", *str); -} - -static void -gen_attr (attr) - rtx attr; -{ - char *p; - - printf ("#define HAVE_ATTR_%s\n", XSTR (attr, 0)); - - /* If numeric attribute, don't need to write an enum. */ - if (*XSTR (attr, 1) == '\0') - printf ("extern int get_attr_%s ();\n", XSTR (attr, 0)); - else - { - printf ("enum attr_%s {", XSTR (attr, 0)); - write_upcase (XSTR (attr, 0)); - printf ("_"); - - for (p = XSTR (attr, 1); *p != '\0'; p++) - { - if (*p == ',') - { - printf (", "); - write_upcase (XSTR (attr, 0)); - printf ("_"); - } - else if (*p >= 'a' && *p <= 'z') - printf ("%c", *p - 'a' + 'A'); - else - printf ("%c", *p); - } - - printf ("};\n"); - printf ("extern enum attr_%s get_attr_%s ();\n\n", - XSTR (attr, 0), XSTR (attr, 0)); - } - - /* If `length' attribute, write additional function definitions and define - variables used by `insn_current_length'. */ - if (! strcmp (XSTR (attr, 0), "length")) - { - printf ("extern void init_lengths ();\n"); - printf ("extern void shorten_branches PROTO((rtx));\n"); - printf ("extern int insn_default_length PROTO((rtx));\n"); - printf ("extern int insn_variable_length_p PROTO((rtx));\n"); - printf ("extern int insn_current_length PROTO((rtx));\n\n"); - printf ("extern int *insn_addresses;\n"); - printf ("extern int insn_current_address;\n\n"); - } -} - -static void -write_units (num_units, multiplicity, simultaneity, - ready_cost, issue_delay, blockage) - int num_units; - struct range *multiplicity; - struct range *simultaneity; - struct range *ready_cost; - struct range *issue_delay; - struct range *blockage; -{ - int i, q_size; - - printf ("#define INSN_SCHEDULING\n\n"); - printf ("extern int result_ready_cost PROTO((rtx));\n"); - printf ("extern int function_units_used PROTO((rtx));\n\n"); - printf ("extern struct function_unit_desc\n"); - printf ("{\n"); - printf (" char *name;\n"); - printf (" int bitmask;\n"); - printf (" int multiplicity;\n"); - printf (" int simultaneity;\n"); - printf (" int default_cost;\n"); - printf (" int max_issue_delay;\n"); - printf (" int (*ready_cost_function) ();\n"); - printf (" int (*conflict_cost_function) ();\n"); - printf (" int max_blockage;\n"); - printf (" unsigned int (*blockage_range_function) ();\n"); - printf (" int (*blockage_function) ();\n"); - printf ("} function_units[];\n\n"); - printf ("#define FUNCTION_UNITS_SIZE %d\n", num_units); - printf ("#define MIN_MULTIPLICITY %d\n", multiplicity->min); - printf ("#define MAX_MULTIPLICITY %d\n", multiplicity->max); - printf ("#define MIN_SIMULTANEITY %d\n", simultaneity->min); - printf ("#define MAX_SIMULTANEITY %d\n", simultaneity->max); - printf ("#define MIN_READY_COST %d\n", ready_cost->min); - printf ("#define MAX_READY_COST %d\n", ready_cost->max); - printf ("#define MIN_ISSUE_DELAY %d\n", issue_delay->min); - printf ("#define MAX_ISSUE_DELAY %d\n", issue_delay->max); - printf ("#define MIN_BLOCKAGE %d\n", blockage->min); - printf ("#define MAX_BLOCKAGE %d\n", blockage->max); - for (i = 0; (1 << i) < blockage->max; i++) - ; - printf ("#define BLOCKAGE_BITS %d\n", i + 1); - - /* INSN_QUEUE_SIZE is a power of two larger than MAX_BLOCKAGE and - MAX_READY_COST. This is the longest time an isnsn may be queued. */ - i = MAX (blockage->max, ready_cost->max); - for (q_size = 1; q_size <= i; q_size <<= 1) - ; - printf ("#define INSN_QUEUE_SIZE %d\n", q_size); -} - -char * -xmalloc (size) - unsigned size; -{ - register char *val = (char *) malloc (size); - - if (val == 0) - fatal ("virtual memory exhausted"); - return val; -} - -char * -xrealloc (ptr, size) - char *ptr; - unsigned size; -{ - char * result = (char *) realloc (ptr, size); - if (!result) - fatal ("virtual memory exhausted"); - return result; -} - -static void -fatal (s, a1, a2) - char *s; -{ - fprintf (stderr, "genattr: "); - fprintf (stderr, s, a1, a2); - fprintf (stderr, "\n"); - exit (FATAL_EXIT_CODE); -} - -/* More 'friendly' abort that prints the line and file. - config.h can #define abort fancy_abort if you like that sort of thing. */ - -void -fancy_abort () -{ - fatal ("Internal gcc abort."); -} - -int -main (argc, argv) - int argc; - char **argv; -{ - rtx desc; - FILE *infile; - register int c; - int have_delay = 0; - int have_annul_true = 0; - int have_annul_false = 0; - int num_units = 0; - struct range all_simultaneity, all_multiplicity; - struct range all_ready_cost, all_issue_delay, all_blockage; - struct function_unit *units = 0, *unit; - int i; - - init_range (&all_multiplicity); - init_range (&all_simultaneity); - init_range (&all_ready_cost); - init_range (&all_issue_delay); - init_range (&all_blockage); - - obstack_init (rtl_obstack); - - if (argc <= 1) - fatal ("No input file name."); - - infile = fopen (argv[1], "r"); - if (infile == 0) - { - perror (argv[1]); - exit (FATAL_EXIT_CODE); - } - - init_rtl (); - - printf ("/* Generated automatically by the program `genattr'\n\ -from the machine description file `md'. */\n\n"); - - /* For compatibility, define the attribute `alternative', which is just - a reference to the variable `which_alternative'. */ - - printf("#ifndef PROTO\n"); - printf("#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)\n"); - printf("#define PROTO(ARGS) ARGS\n"); - printf("#else\n"); - printf("#define PROTO(ARGS) ()\n"); - printf("#endif\n"); - printf("#endif\n"); - - printf ("#define HAVE_ATTR_alternative\n"); - printf ("#define get_attr_alternative(insn) which_alternative\n"); - - /* Read the machine description. */ - - while (1) - { - c = read_skip_spaces (infile); - if (c == EOF) - break; - ungetc (c, infile); - - desc = read_rtx (infile); - if (GET_CODE (desc) == DEFINE_ATTR) - gen_attr (desc); - - else if (GET_CODE (desc) == DEFINE_DELAY) - { - if (! have_delay) - { - printf ("#define DELAY_SLOTS\n"); - printf ("extern int num_delay_slots PROTO((rtx));\n"); - printf ("extern int eligible_for_delay PROTO((rtx, int, rtx, int));\n\n"); - printf ("extern int const_num_delay_slots PROTO((rtx));\n\n"); - have_delay = 1; - } - - for (i = 0; i < XVECLEN (desc, 1); i += 3) - { - if (XVECEXP (desc, 1, i + 1) && ! have_annul_true) - { - printf ("#define ANNUL_IFTRUE_SLOTS\n"); - printf ("extern int eligible_for_annul_true ();\n"); - have_annul_true = 1; - } - - if (XVECEXP (desc, 1, i + 2) && ! have_annul_false) - { - printf ("#define ANNUL_IFFALSE_SLOTS\n"); - printf ("extern int eligible_for_annul_false ();\n"); - have_annul_false = 1; - } - } - } - - else if (GET_CODE (desc) == DEFINE_FUNCTION_UNIT) - { - char *name = XSTR (desc, 0); - int multiplicity = XINT (desc, 1); - int simultaneity = XINT (desc, 2); - int ready_cost = MAX (XINT (desc, 4), 1); - int issue_delay = MAX (XINT (desc, 5), 1); - int issueexp_p = (XVEC (desc, 6) != 0); - - for (unit = units; unit; unit = unit->next) - if (strcmp (unit->name, name) == 0) - break; - - if (unit == 0) - { - int len = strlen (name) + 1; - unit = (struct function_unit *) - alloca (sizeof (struct function_unit)); - unit->name = (char *) alloca (len); - bcopy (name, unit->name, len); - unit->multiplicity = multiplicity; - unit->simultaneity = simultaneity; - unit->ready_cost.min = unit->ready_cost.max = ready_cost; - unit->issue_delay.min = unit->issue_delay.max = issue_delay; - unit->next = units; - units = unit; - num_units++; - - extend_range (&all_multiplicity, multiplicity, multiplicity); - extend_range (&all_simultaneity, simultaneity, simultaneity); - } - else if (unit->multiplicity != multiplicity - || unit->simultaneity != simultaneity) - fatal ("Differing specifications given for `%s' function unit.", - unit->name); - - extend_range (&unit->ready_cost, ready_cost, ready_cost); - extend_range (&unit->issue_delay, - issueexp_p ? 1 : issue_delay, issue_delay); - extend_range (&all_ready_cost, - unit->ready_cost.min, unit->ready_cost.max); - extend_range (&all_issue_delay, - unit->issue_delay.min, unit->issue_delay.max); - } - } - - if (num_units > 0) - { - /* Compute the range of blockage cost values. See genattrtab.c - for the derivation. BLOCKAGE (E,C) when SIMULTANEITY is zero is - - MAX (ISSUE-DELAY (E,C), - READY-COST (E) - (READY-COST (C) - 1)) - - and otherwise - - MAX (ISSUE-DELAY (E,C), - READY-COST (E) - (READY-COST (C) - 1), - READY-COST (E) - FILL-TIME) */ - - for (unit = units; unit; unit = unit->next) - { - struct range blockage; - int max_issue_time = MAX (unit->issue_delay.max, 1); - - blockage = unit->issue_delay; - blockage.max = MAX (unit->ready_cost.max - - (unit->ready_cost.min - 1), - blockage.max); - blockage.min = MAX (1, blockage.min); - - if (unit->simultaneity != 0) - { - int fill_time = ((unit->simultaneity - 1) - * unit->issue_delay.min); - blockage.min = MAX (unit->ready_cost.min - fill_time, - blockage.min); - blockage.max = MAX (unit->ready_cost.max - fill_time, - blockage.max); - } - extend_range (&all_blockage, blockage.min, blockage.max); - } - - write_units (num_units, &all_multiplicity, &all_simultaneity, - &all_ready_cost, &all_issue_delay, &all_blockage); - } - - /* Output flag masks for use by reorg. - - Flags are used to hold branch direction and prediction information - for use by eligible_for_... */ - printf("\n#define ATTR_FLAG_forward\t0x1\n"); - printf("#define ATTR_FLAG_backward\t0x2\n"); - printf("#define ATTR_FLAG_likely\t0x4\n"); - printf("#define ATTR_FLAG_very_likely\t0x8\n"); - printf("#define ATTR_FLAG_unlikely\t0x10\n"); - printf("#define ATTR_FLAG_very_unlikely\t0x20\n"); - - fflush (stdout); - exit (ferror (stdout) != 0 ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE); - /* NOTREACHED */ - return 0; -} diff --git a/gnu/usr.bin/gcc2/arch/i386/tm.h b/gnu/usr.bin/gcc2/arch/i386/tm.h deleted file mode 100644 index fe6273d6170..00000000000 --- a/gnu/usr.bin/gcc2/arch/i386/tm.h +++ /dev/null @@ -1,179 +0,0 @@ -/* Configuration for an i386 running NetBSD as the target machine. - - $Id: tm.h,v 1.1 1995/10/18 08:39:19 deraadt Exp $ -*/ - -/* This is tested by i386gas.h. */ -#define YES_UNDERSCORES - -#include "i386/gstabs.h" - -/* Get perform_* macros to build libgcc.a. */ -#include "i386/perform.h" - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Di386 -Dunix -D__NetBSD__ -D__i386__" - -/* Like the default, except no -lg. */ -#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}" - -#define STARTFILE_SPEC \ - "%{pg:gcrt0.o%s}\ - %{!pg:%{p:mcrt0.o%s}\ - %{!p:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" - -#undef SIZE_TYPE -#define SIZE_TYPE "unsigned int" - -#undef PTRDIFF_TYPE -#define PTRDIFF_TYPE "int" - -#undef WCHAR_TYPE -#define WCHAR_TYPE "short unsigned int" - -#define WCHAR_UNSIGNED 1 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 16 - -/* NetBSD does have atexit. */ - -#define HAVE_ATEXIT - -/* Redefine this to use %eax instead of %edx. */ -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ -{ \ - if (flag_pic) \ - { \ - fprintf (FILE, "\tcall mcount@PLT\n"); \ - } \ - else \ - { \ - fprintf (FILE, "\tcall mcount\n"); \ - } \ -} - -/* There are conflicting reports about whether this system uses - a different assembler syntax. wilson@cygnus.com says # is right. */ -#undef COMMENT_BEGIN -#define COMMENT_BEGIN "#" - -#undef ASM_APP_ON -#define ASM_APP_ON "#APP\n" - -#undef ASM_APP_OFF -#define ASM_APP_OFF "#NO_APP\n" - -/* The following macros are stolen from i386v4.h */ -/* These have to be defined to get PIC code correct */ - -/* This is how to output an element of a case-vector that is relative. - This is only used for PIC code. See comments by the `casesi' insn in - i386.md for an explanation of the expression this outputs. */ - -#undef ASM_OUTPUT_ADDR_DIFF_ELT -#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, VALUE, REL) \ - fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE) - -/* Indicate that jump tables go in the text section. This is - necessary when compiling PIC code. */ - -#define JUMP_TABLES_IN_TEXT_SECTION - -/* Don't default to pcc-struct-return, because gcc is the only compiler, and - we want to retain compatibility with older gcc versions. */ -#define DEFAULT_PCC_STRUCT_RETURN 0 - -/* - * Some imports from svr4.h in support of shared libraries. - */ - -#define HANDLE_SYSV_PRAGMA - -/* Define the strings used for the special svr4 .type and .size directives. - These strings generally do not vary from one system running svr4 to - another, but if a given system (e.g. m88k running svr) needs to use - different pseudo-op names for these, they may be overridden in the - file which includes this one. */ - -#define TYPE_ASM_OP ".type" -#define SIZE_ASM_OP ".size" -#define WEAK_ASM_OP ".weak" -#define SET_ASM_OP ".set" - -/* The following macro defines the format used to output the second - operand of the .type assembler directive. Different svr4 assemblers - expect various different forms for this operand. The one given here - is just a default. You may need to override it in your machine- - specific tm.h file (depending upon the particulars of your assembler). */ - -#define TYPE_OPERAND_FMT "@%s" - -/* Write the extra assembler code needed to declare a function's result. - Most svr4 assemblers don't require any special declaration of the - result value, but there are exceptions. */ - -#ifndef ASM_DECLARE_RESULT -#define ASM_DECLARE_RESULT(FILE, RESULT) -#endif - -/* These macros generate the special .type and .size directives which - are used to set the corresponding fields of the linker symbol table - entries in an ELF object file under SVR4. These macros also output - the starting labels for the relevant functions/objects. */ - -/* Write the extra assembler code needed to declare a function properly. - Some svr4 assemblers need to also have something extra said about the - function's return value. We allow for that here. */ - -#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \ - do { \ - fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \ - assemble_name (FILE, NAME); \ - putc (',', FILE); \ - fprintf (FILE, TYPE_OPERAND_FMT, "function"); \ - putc ('\n', FILE); \ - ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \ - ASM_OUTPUT_LABEL(FILE, NAME); \ - } while (0) - -/* Write the extra assembler code needed to declare an object properly. */ - -#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \ - do { \ - fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \ - assemble_name (FILE, NAME); \ - putc (',', FILE); \ - fprintf (FILE, TYPE_OPERAND_FMT, "object"); \ - putc ('\n', FILE); \ - if (!flag_inhibit_size_directive) \ - { \ - fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \ - assemble_name (FILE, NAME); \ - fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (decl))); \ - } \ - ASM_OUTPUT_LABEL(FILE, NAME); \ - } while (0) - -/* This is how to declare the size of a function. */ - -#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \ - do { \ - if (!flag_inhibit_size_directive) \ - { \ - char label[256]; \ - static int labelno; \ - labelno++; \ - ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \ - ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \ - fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \ - assemble_name (FILE, (FNAME)); \ - fprintf (FILE, ","); \ - assemble_name (FILE, label); \ - fprintf (FILE, "-"); \ - assemble_name (FILE, (FNAME)); \ - putc ('\n', FILE); \ - } \ - } while (0) - diff --git a/gnu/usr.bin/gcc2/arch/i386/unix.h b/gnu/usr.bin/gcc2/arch/i386/unix.h deleted file mode 100644 index bfe0491052f..00000000000 --- a/gnu/usr.bin/gcc2/arch/i386/unix.h +++ /dev/null @@ -1,148 +0,0 @@ -/* Definitions for Unix assembler syntax for the Intel 80386. - Copyright (C) 1988 Free Software Foundation, Inc. - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: unix.h,v 1.1 1995/10/18 08:39:19 deraadt Exp $ -*/ - -/* This file defines the aspects of assembler syntax - that are the same for all the i386 Unix systems - (though they may differ in non-Unix systems). */ - -/* Define some concatenation macros to concatenate an opcode - and one, two or three operands. In other assembler syntaxes - they may alter the order of ther operands. */ - -/* Note that the other files fail to use these - in some of the places where they should. */ - -#ifdef __STDC__ -#define AS2(a,b,c) #a " " #b "," #c -#define AS3(a,b,c,d) #a " " #b "," #c "," #d -#define AS1(a,b) #a " " #b -#else -#define AS1(a,b) "a b" -#define AS2(a,b,c) "a b,c" -#define AS3(a,b,c,d) "a b,c,d" -#endif - -/* Define macro used to output shift-double opcodes when the shift - count is in %cl. Some assemblers require %cl as an argument; - some don't. This macro controls what to do: by default, don't - print %cl. */ -#define AS3_SHIFT_DOUBLE(a,b,c,d) AS2 (a,c,d) - -/* Output the size-letter for an opcode. - CODE is the letter used in an operand spec (L, B, W, S or Q). - CH is the corresponding lower case letter - (except if CODE is `Q' then CH is `l', unless GAS_MNEMONICS). */ -#define PUT_OP_SIZE(CODE,CH,FILE) putc (CH,(FILE)) - -/* Opcode suffix for fullword insn. */ -#define L_SIZE "l" - -/* Prefix for register names in this syntax. */ -#define RP "%" - -/* Prefix for immediate operands in this syntax. */ -#define IP "$" - -/* Indirect call instructions should use `*'. */ -#define USE_STAR 1 - -/* Prefix for a memory-operand X. */ -#define PRINT_PTR(X, FILE) - -/* Delimiters that surround base reg and index reg. */ -#define ADDR_BEG(FILE) putc('(', (FILE)) -#define ADDR_END(FILE) putc(')', (FILE)) - -/* Print an index register (whose rtx is IREG). */ -#define PRINT_IREG(FILE,IREG) \ - do \ - { fputs (",", (FILE)); PRINT_REG ((IREG), 0, (FILE)); } \ - while (0) - -/* Print an index scale factor SCALE. */ -#define PRINT_SCALE(FILE,SCALE) \ - if ((SCALE) != 1) fprintf ((FILE), ",%d", (SCALE)) - -/* Print a base/index combination. - BREG is the base reg rtx, IREG is the index reg rtx, - and SCALE is the index scale factor (an integer). */ - -#define PRINT_B_I_S(BREG,IREG,SCALE,FILE) \ - { ADDR_BEG (FILE); \ - if (BREG) PRINT_REG ((BREG), 0, (FILE)); \ - if ((IREG) != 0) \ - { PRINT_IREG ((FILE), (IREG)); \ - PRINT_SCALE ((FILE), (SCALE)); } \ - ADDR_END (FILE); } - -/* Define the syntax of pseudo-ops, labels and comments. */ - -/* String containing the assembler's comment-starter. */ - -#define ASM_COMMENT_START "/" -#define COMMENT_BEGIN "/" - -/* Output to assembler file text saying following lines - may contain character constants, extra white space, comments, etc. */ - -#define ASM_APP_ON "/APP\n" - -/* Output to assembler file text saying following lines - no longer contain unusual constructs. */ - -#define ASM_APP_OFF "/NO_APP\n" - -/* Output before read-only data. */ - -#define TEXT_SECTION_ASM_OP ".text" - -/* Output before writable (initialized) data. */ - -#define DATA_SECTION_ASM_OP ".data" - -/* Output before writable (uninitialized) data. */ - -#define BSS_SECTION_ASM_OP ".bss" - -/* This is how to output a command to make the user-level label named NAME - defined for reference from other files. */ - -#define ASM_GLOBALIZE_LABEL(FILE,NAME) \ - (fputs (".globl ", FILE), assemble_name (FILE, NAME), fputs ("\n", FILE)) - -/* By default, target has a 80387, uses IEEE compatible arithmetic, - and returns float values in the 387, ie, - (TARGET_80387 | TARGET_IEEE_FP | TARGET_FLOAT_RETURNS_IN_80387) */ - -#define TARGET_DEFAULT 0301 - -/* Floating-point return values come in the FP register. */ - -#define VALUE_REGNO(MODE) \ - (GET_MODE_CLASS (MODE) == MODE_FLOAT \ - && TARGET_FLOAT_RETURNS_IN_80387 ? FIRST_FLOAT_REG : 0) - -/* 1 if N is a possible register number for a function value. */ - -#define FUNCTION_VALUE_REGNO_P(N) \ - ((N) == 0 || ((N)== FIRST_FLOAT_REG && TARGET_FLOAT_RETURNS_IN_80387)) - |