diff options
author | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-06-07 18:00:15 +0000 |
---|---|---|
committer | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-06-07 18:00:15 +0000 |
commit | 6af9f7ea1f2b5cc8e19fc1f8d2d78f3a5dc02b6a (patch) | |
tree | 0b3f6bdde3fd6779fef4d162dd5a25868787d722 /gcc/config/alpha | |
parent | 09066160c7184c030528e4ff559b66a4ccdcb9a5 (diff) | |
download | gcc-6af9f7ea1f2b5cc8e19fc1f8d2d78f3a5dc02b6a.tar.gz |
* MAINTAINERS (mt port): Remove.
(sco5, unixware, sco udk): Remove.
(Kean Johnston): Add to Write After Approval.
fixincludes:
* inclhack.def (AAB_svr4_replace_byteorder,
AAB_ultrix_ansi_compat, AAB_ultrix_limits, AAB_ultrix_memory,
libc1_G_va_list, libc1_ifdefd_memx, nested_motorola,
ptx_sys_mc_param_h, sco_regset, sco_static_func, sco_utime,
solaris_mutex_init_1, solaris_socket, solaris_unistd,
solaris_widec, svr4_krnl, ultrix_atexit_param, ultrix_atof_param,
ultrix_const3, ultrix_fix_fixproto, ultrix_ifdef, ultrix_locale,
ultrix_math_ifdef, ultrix_nested_ioctl, ultrix_nested_svc,
ultrix_stat, ultrix_static, ultrix_stdlib, ultrix_strings,
ultrix_strings2, ultrix_sys_time, ultrix_unistd,
unicosmk_restrict, uw7_byteorder_fix, windiss_math1,
windiss_math2, windiss_valist): Remove.
* fixincl.x: Regenerate.
* mkfixinc.sh: (arm-semi-aof, hppa1.1-*-osf*, hppa1.1-*-bsd*,
i370-*-openedition, i?86-*-moss*, i?86-*-uwin*,
powerpc-*-eabiaix*): Remove.
* tests/base/math.h: Update.
* tests/base/pthread.h: Update.
* tests/base/stdio.h: Update.
* tests/base/stdlib.h: Update.
* tests/base/string.h: Update.
* tests/base/strings.h: Update.
* tests/base/sys/file.h: Update.
* tests/base/sys/limits.h: Update.
* tests/base/sys/socket.h: Update.
* tests/base/sys/stat.h: Update.
* tests/base/sys/time.h: Update.
* tests/base/testing.h: Update.
* tests/base/unistd.h: Update.
* tests/base/_G_config.h: Remove.
* tests/base/arpa: Remove directory.
* tests/base/fs: Remove directory.
* tests/base/locale.h: Remove.
* tests/base/machine: Remove directory.
* tests/base/rpc/svc.h: Remove.
* tests/base/sys/ioctl.h: Remove.
* tests/base/sys/regset.h: Remove.
* tests/base/sys/times.h: Remove.
* tests/base/sys/utsname.h: Remove.
* tests/base/widec.h: Remove.
gcc:
* config.gcc (Obsolete configurations): Remove list of
configurations.
(Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
*-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
targets matched by those patterns.
(strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
Make code for Solaris 7 and greater unconditional for Solaris.
(ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
Remove --with-* handling.
* config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
(LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
LINK_OS_WINDISS_SPEC): Remove.
* config/rs6000/sysv4.opt (mwindiss): Remove.
* configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
* configure: Regenerate.
* doc/cpp.texi: Don't mention BeOS.
* doc/extend.texi (interrupt): Don't mention MS1.
* doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
Remove.
* doc/invoke.texi (MT Options): Remove.
(-mwindiss): Remove.
(CRIS Options): Remove cris-axis-aout references.
(HPPA Options): Don't mention hppa1.1-*-pro.
* doc/md.texi: (MorphoTech family): Remove.
* libgcc2.c: Don't handle UWIN.
* config/alpha/t-unicosmk: Remove.
* config/alpha/unicosmk.h: Remove.
* config/arm/kaos-arm.h: Remove.
* config/arm/kaos-strongarm.h: Remove.
* config/arm/strongarm-coff.h: Remove.
* config/arm/strongarm-elf.h: Remove.
* config/arm/strongarm-pe.h: Remove.
* config/arm/t-strongarm-pe: Remove.
* config/arm/t-xscale-coff: Remove.
* config/arm/t-xscale-elf: Remove.
* config/arm/xscale-coff.h: Remove.
* config/arm/xscale-elf.h: Remove.
* config/chorus.h: Remove.
* config/cris/aout.h: Remove.
* config/cris/aout.opt: Remove.
* config/cris/t-aout: Remove.
* config/i386/beos-elf.h: Remove.
* config/i386/kaos-i386.h: Remove.
* config/i386/ptx4-i.h: Remove.
* config/i386/sco5.h: Remove.
* config/i386/sco5.opt: Remove.
* config/i386/sysv4-cpp.h: Remove.
* config/i386/sysv5.h: Remove.
* config/i386/t-beos: Remove.
* config/i386/t-sco5: Remove.
* config/i386/t-uwin: Remove.
* config/i386/uwin.asm: Remove.
* config/i386/uwin.h: Remove.
* config/kaos.h: Remove.
* config/mips/windiss.h: Remove.
* config/mt: Remove directory.
* config/pa/pa-osf.h: Remove.
* config/pa/pa-pro-end.h: Remove.
* config/pa/t-pro: Remove.
* config/ptx4.h: Remove.
* config/rs6000/beos.h: Remove.
* config/rs6000/kaos-ppc.h: Remove.
* config/rs6000/t-beos: Remove.
* config/rs6000/windiss.h: Remove.
* config/sh/kaos-sh.h: Remove.
* config/sol2-6.h: Remove.
* config/sparc/sol26-sld.h: Remove.
* config/sparc/sysv4-only.h: Remove.
* config/vax/bsd.h: Remove.
* config/vax/t-memfuncs: Remove.
* config/vax/ultrix.h: Remove.
* config/vax/vaxv.h: Remove.
* config/windiss.h: Remove.
gcc/testsuite:
* g++.dg/abi/arm_cxa_vec1.C: Don't handle xscale*-*-*.
* g++.dg/eh/spbp.C: Don't handle *-*-solaris2.[56]*.
* g++.dg/warn/miss-format-1.C: Don't handle Solaris before Solaris
7.
* gcc.c-torture/compile/981006-1.c: Don't handle xscale*-*-*,
strongarm*-*-* and cris-*-aout*.
* gcc.c-torture/execute/941014-1.x: Don't handle xscale*-*-* and
strongarm*-*-*.
* gcc.dg/20030909-1.c: Don't handle xscale*-*-* and
strongarm*-*-*.
* gcc.dg/20031108-1.c: Don't handle xscale*-*-* and
strongarm*-*-*.
* gcc.dg/20040813-1.c: Don't handle *-*-sysv5*.
* gcc.dg/arm-asm.c: Don't handle strongarm*-*-* and xscale*-*-*.
* gcc.dg/arm-scd42-1.c: Use target arm*-*-*.
* gcc.dg/arm-scd42-3.c: Use target arm*-*-*.
* gcc.dg/cpp/assert4.c: Don't handle BeOS.
* gcc.dg/debug/pr35154.c: Don't handle *-*-sysv5*.
* gcc.dg/intmax_t-1.c: Don't handle *-*-solaris2.5.1 and
xscale*-*-elf*.
* gcc.dg/pragma-align.c: Don't handle i?86-*-sco3.2v5*.
* gcc.dg/pthread-init-2.c: Don't handle *-*-solaris2.5.1.
* gcc.misc-tests/arm-isr.exp: Use target arm*-*-*.
* gcc.target/powerpc/ppc-sdata-1.c: Don't handle powerpc-*-sysv*.
* gcc.target/powerpc/ppc-sdata-2.c: Don't handle powerpc-*-sysv*.
* gcc.target/powerpc/ppc-stackalign-1.c: Don't handle
powerpc-*-sysv*.
* gfortran.dg/debug/pr35154-stabs.f: Don't handle *-*-sysv5*.
* lib/target-supports.exp: Don't handle strongarm*-*-elf,
xscale*-*-elf and *-*-windiss.
* obj-c++.dg/dwarf-2.mm: Don't handle *-*-solaris2.[56]*.
* objc.dg/dwarf-1.m: Don't handle *-*-solaris2.[56]*.
* objc.dg/dwarf-2.m: Don't handle *-*-solaris2.[56]*.
* gcc.dg/mt-loopi1.c: Remove.
gnattools:
* configure.ac (xscale*-wrs-vx*, xscale*-wrs-coff): Remove.
* configure: Regenerate.
libcpp:
* configure.ac (parisc*64*-*-*): Remove.
* configure: Regenerate.
libffi:
* configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
powerpc-*-beos*): Remove.
* configure: Regenerate.
libgcc:
* config.host (strongarm*-*-*, ep9312*-*-*, xscale-*-*,
parisc*-*-*, m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
vax-*-ultrix*, xscale-*-elf, xscale-*-coff): Remove.
libjava:
* configure.host (strongarm*-elf, xscale*-elf): Remove.
libstdc++-v3:
* configure.host (xscale, ep9312, m680[246]0, solaris2.5,
solaris2.5.[0-9], solaris2.6, windiss*): Remove.
* crossconfig.m4 (*-solaris2.5, *-solaris2.6, *-windiss*): Remove.
* configure: Regenerate.
* config/os/solaris/solaris2.5: Remove directory.
* config/os/solaris/solaris2.6: Remove directory.
* config/os/windiss: Remove directory.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136534 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/alpha')
-rw-r--r-- | gcc/config/alpha/t-unicosmk | 2 | ||||
-rw-r--r-- | gcc/config/alpha/unicosmk.h | 438 |
2 files changed, 0 insertions, 440 deletions
diff --git a/gcc/config/alpha/t-unicosmk b/gcc/config/alpha/t-unicosmk deleted file mode 100644 index 9c52b984718..00000000000 --- a/gcc/config/alpha/t-unicosmk +++ /dev/null @@ -1,2 +0,0 @@ -# This file is empty for now. - diff --git a/gcc/config/alpha/unicosmk.h b/gcc/config/alpha/unicosmk.h deleted file mode 100644 index 4a24bd59321..00000000000 --- a/gcc/config/alpha/unicosmk.h +++ /dev/null @@ -1,438 +0,0 @@ -/* Definitions of target machine for GNU compiler, for DEC Alpha on Cray - T3E running Unicos/Mk. - Copyright (C) 2001, 2002, 2004, 2005, 2007 - Free Software Foundation, Inc. - Contributed by Roman Lechtchinsky (rl@cs.tu-berlin.de) - -This file is part of GCC. - -GCC 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 3, or (at your option) -any later version. - -GCC 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 GCC; see the file COPYING3. If not see -<http://www.gnu.org/licenses/>. */ - -#undef TARGET_ABI_UNICOSMK -#define TARGET_ABI_UNICOSMK 1 - -/* CAM requires a slash before floating-pointing instruction suffixes. */ - -#undef TARGET_AS_SLASH_BEFORE_SUFFIX -#define TARGET_AS_SLASH_BEFORE_SUFFIX 1 - -/* The following defines are necessary for the standard headers to work - correctly. */ - -#define TARGET_OS_CPP_BUILTINS() \ - do { \ - builtin_define ("__unix"); \ - builtin_define ("_UNICOS=205"); \ - builtin_define ("_CRAY"); \ - builtin_define ("_CRAYT3E"); \ - builtin_define ("_CRAYMPP"); \ - builtin_define ("_CRAYIEEE"); \ - builtin_define ("_ADDR64"); \ - builtin_define ("_LD64"); \ - builtin_define ("__UNICOSMK__"); \ - } while (0) - -#define SHORT_TYPE_SIZE 32 - -#undef INT_TYPE_SIZE -#define INT_TYPE_SIZE 64 - -/* This is consistent with the definition Cray CC uses. */ -#undef WCHAR_TYPE -#define WCHAR_TYPE "int" -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 64 - -/* -#define SIZE_TYPE "unsigned int" -#define PTRDIFF_TYPE "int" -*/ - -/* Alphas are operated in big endian mode on the Cray T3E. */ - -#undef BITS_BIG_ENDIAN -#undef BYTES_BIG_ENDIAN -#undef WORDS_BIG_ENDIAN -#define BITS_BIG_ENDIAN 0 -#define BYTES_BIG_ENDIAN 1 -#define WORDS_BIG_ENDIAN 1 - - -/* Every structure's size must be a multiple of this. */ - -#undef STRUCTURE_SIZE_BOUNDARY -#define STRUCTURE_SIZE_BOUNDARY 64 - -/* No data type wants to be aligned rounder than this. */ - -#undef BIGGEST_ALIGNMENT -#define BIGGEST_ALIGNMENT 256 - -/* Include the frame pointer in fixed_regs and call_used_regs as it can't be - used as a general-purpose register even in frameless functions. - ??? The global_regs hack is needed for now because -O2 sometimes tries to - eliminate $15 increments/decrements in frameless functions. */ - -#undef CONDITIONAL_REGISTER_USAGE -#define CONDITIONAL_REGISTER_USAGE \ - do { \ - fixed_regs[15] = 1; \ - call_used_regs[15] = 1; \ - global_regs[15] = 1; \ - } while(0) - -/* The stack frame grows downward. */ - -#define FRAME_GROWS_DOWNWARD 1 - -/* Define the offset between two registers, one to be eliminated, and the - other its replacement, at the start of a routine. This is somewhat - complicated on the T3E which is why we use a function. */ - -#undef INITIAL_ELIMINATION_OFFSET -#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \ - do { \ - (OFFSET) = unicosmk_initial_elimination_offset ((FROM), (TO)); \ - } while (0) - - -/* Define this if stack space is still allocated for a parameter passed - in a register. On the T3E, stack space is preallocated for all outgoing - arguments, including those passed in registers. To avoid problems, we - assume that at least 48 bytes (i.e. enough space for all arguments passed - in registers) are allocated. */ - -#define REG_PARM_STACK_SPACE(DECL) 48 -#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1 - -/* If an argument can't be passed in registers even though not all argument - registers have been used yet, it is passed on the stack in the space - preallocated for these registers. */ - -#define STACK_PARMS_IN_REG_PARM_AREA - -/* Define a data type for recording info about an argument list - during the scan of that argument list. This data type should - hold all necessary information about the function itself - and about the args processed so far, enough to enable macros - such as FUNCTION_ARG to determine where the next arg should go. - - On Unicos/Mk, this is a structure that contains various information for - the static subroutine information block (SSIB) and the call information - word (CIW). */ - -typedef struct { - - /* The overall number of arguments. */ - int num_args; - - /* The overall size of the arguments in words. */ - int num_arg_words; - - /* The number of words passed in registers. */ - int num_reg_words; - - /* If an argument must be passed in the stack, all subsequent arguments - must be passed there, too. This flag indicates whether this is the - case. */ - int force_stack; - - /* This array indicates whether a word is passed in an integer register or - a floating point one. */ - - /* For each of the 6 register arguments, the corresponding flag in this - array indicates whether the argument is passed in an integer or a - floating point register. */ - int reg_args_type[6]; - -} unicosmk_arg_info; - -#undef CUMULATIVE_ARGS -#define CUMULATIVE_ARGS unicosmk_arg_info - -/* Initialize a variable CUM of type CUMULATIVE_ARGS for a call to a - function whose data type is FNTYPE. For a library call, FNTYPE is 0. */ - -#undef INIT_CUMULATIVE_ARGS -#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \ - do { (CUM).num_args = 0; \ - (CUM).num_arg_words = 0; \ - (CUM).num_reg_words = 0; \ - (CUM).force_stack = 0; \ - } while(0) - -/* Update the data in CUM to advance over an argument of mode MODE and data - type TYPE. (TYPE is null for libcalls where that information may not be - available.) - - On Unicos/Mk, at most 6 words can be passed in registers. Structures - which fit in two words are passed in registers, larger structures are - passed on stack. */ - -#undef FUNCTION_ARG_ADVANCE -#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \ -do { \ - int size; \ - \ - size = ALPHA_ARG_SIZE (MODE, TYPE, NAMED); \ - \ - if (size > 2 \ - || (CUM).num_reg_words + size > 6 \ - || targetm.calls.must_pass_in_stack (MODE, TYPE)) \ - (CUM).force_stack = 1; \ - \ - if (! (CUM).force_stack) \ - { \ - int i; \ - int isfloat; \ - isfloat = (GET_MODE_CLASS (MODE) == MODE_COMPLEX_FLOAT \ - || GET_MODE_CLASS (MODE) == MODE_FLOAT); \ - for (i = 0; i < size; i++) \ - { \ - (CUM).reg_args_type[(CUM).num_reg_words] = isfloat; \ - ++(CUM).num_reg_words; \ - } \ - } \ - (CUM).num_arg_words += size; \ - ++(CUM).num_args; \ -} while(0) - -/* This ensures that $15 increments/decrements in leaf functions won't get - eliminated. */ - -#undef EPILOGUE_USES -#define EPILOGUE_USES(REGNO) ((REGNO) == 26 || (REGNO) == 15) - -/* Would have worked, only the stack doesn't seem to be executable -#undef TRAMPOLINE_TEMPLATE -#define TRAMPOLINE_TEMPLATE(FILE) \ -do { fprintf (FILE, "\tbr $1,0\n"); \ - fprintf (FILE, "\tldq $0,12($1)\n"); \ - fprintf (FILE, "\tldq $1,20($1)\n"); \ - fprintf (FILE, "\tjmp $31,(r0)\n"); \ - fprintf (FILE, "\tbis $31,$31,$31\n"); \ - fprintf (FILE, "\tbis $31,$31,$31\n"); \ -} while (0) */ - -/* We don't support nested functions (yet). */ - -#undef TRAMPOLINE_TEMPLATE -#define TRAMPOLINE_TEMPLATE(FILE) gcc_unreachable () - -/* Specify the machine mode that this machine uses for the index in the - tablejump instruction. On Unicos/Mk, we don't support relative case - vectors yet, thus the entries should be absolute addresses. */ - -#undef CASE_VECTOR_MODE -#define CASE_VECTOR_MODE DImode - -#undef CASE_VECTOR_PC_RELATIVE - -/* Define this as 1 if `char' should by default be signed; else as 0. */ -/* #define DEFAULT_SIGNED_CHAR 1 */ - -/* There are no read-only sections on Unicos/Mk. */ - -#undef READONLY_DATA_SECTION_ASM_OP - -/* We take care of this in unicosmk_file_start. */ - -#undef ASM_OUTPUT_SOURCE_FILENAME - -/* This is how to output a label for a jump table. Arguments are the same as - for (*targetm.asm_out.internal_label), except the insn for the jump table is - passed. */ - -#undef ASM_OUTPUT_CASE_LABEL -#define ASM_OUTPUT_CASE_LABEL(FILE,PREFIX,NUM,TABLEINSN) \ - (*targetm.asm_out.internal_label) (FILE, PREFIX, NUM) - -/* CAM has some restrictions with respect to string literals. It won't - accept lines with more that 256 characters which means that we have - to split long strings. Moreover, it only accepts escape sequences of - the form \nnn in the range 0 to 127. We generate .byte directives for - escapes characters greater than 127. And finally, ` must be escaped. */ - -#undef ASM_OUTPUT_ASCII -#define ASM_OUTPUT_ASCII(MYFILE, MYSTRING, MYLENGTH) \ - do { \ - FILE *_hide_asm_out_file = (MYFILE); \ - const unsigned char *_hide_p = (const unsigned char *) (MYSTRING); \ - int _hide_thissize = (MYLENGTH); \ - int _size_so_far = 0; \ - { \ - FILE *asm_out_file = _hide_asm_out_file; \ - const unsigned char *p = _hide_p; \ - int thissize = _hide_thissize; \ - int in_ascii = 0; \ - int i; \ - \ - for (i = 0; i < thissize; i++) \ - { \ - register int c = p[i]; \ - \ - if (c > 127) \ - { \ - if (in_ascii) \ - { \ - fprintf (asm_out_file, "\"\n"); \ - in_ascii = 0; \ - } \ - \ - fprintf (asm_out_file, "\t.byte\t%d\n", c); \ - } \ - else \ - { \ - if (! in_ascii) \ - { \ - fprintf (asm_out_file, "\t.ascii\t\""); \ - in_ascii = 1; \ - _size_so_far = 0; \ - } \ - else if (_size_so_far >= 64) \ - { \ - fprintf (asm_out_file, "\"\n\t.ascii\t\""); \ - _size_so_far = 0; \ - } \ - \ - if (c == '\"' || c == '\\' || c == '`') \ - putc ('\\', asm_out_file); \ - if (c >= ' ') \ - putc (c, asm_out_file); \ - else \ - fprintf (asm_out_file, "\\%.3o", c); \ - ++ _size_so_far; \ - } \ - } \ - if (in_ascii) \ - fprintf (asm_out_file, "\"\n"); \ - } \ - } while(0) - -/* This is how to output an element of a case-vector that is absolute. */ - -#undef ASM_OUTPUT_ADDR_VEC_ELT -#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \ - fprintf (FILE, "\t.quad $L%d\n", (VALUE)) - -/* This is how to output an element of a case-vector that is relative. - (Unicos/Mk does not use such vectors yet). */ - -#undef ASM_OUTPUT_ADDR_DIFF_ELT -#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) gcc_unreachable () - -/* We can't output case vectors in the same section as the function code - because CAM doesn't allow data definitions in code sections. Thus, we - simply record the case vectors and put them in a separate section after - the function. */ - -#define ASM_OUTPUT_ADDR_VEC(LAB,VEC) \ - unicosmk_defer_case_vector ((LAB),(VEC)) - -#define ASM_OUTPUT_ADDR_DIFF_VEC(LAB,VEC) gcc_unreachable () - -/* This is how to output an assembler line that says to advance the location - counter to a multiple of 2**LOG bytes. Annoyingly, CAM always uses zeroes - to fill the unused space which does not work in code sections. We have to - be careful not to use the .align directive in code sections. */ - -#undef ASM_OUTPUT_ALIGN -#define ASM_OUTPUT_ALIGN(STREAM,LOG) unicosmk_output_align (STREAM, LOG) - -/* This is how to advance the location counter by SIZE bytes. */ - -#undef ASM_OUTPUT_SKIP -#define ASM_OUTPUT_SKIP(STREAM,SIZE) \ - fprintf ((STREAM), "\t.byte\t0:"HOST_WIDE_INT_PRINT_UNSIGNED"\n",\ - (SIZE)); - -/* This says how to output an assembler line to define a global common - symbol. We need the alignment information because it has to be supplied - in the section header. */ - -#undef ASM_OUTPUT_COMMON -#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \ - unicosmk_output_common ((FILE), (NAME), (SIZE), (ALIGN)) - -/* This says how to output an assembler line to define a local symbol. */ - -#undef ASM_OUTPUT_LOCAL -#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \ - do { switch_to_section (data_section); \ - fprintf (FILE, "\t.align\t%d\n", floor_log2 ((ALIGN) / BITS_PER_UNIT));\ - ASM_OUTPUT_LABEL ((FILE), (NAME)); \ - fprintf (FILE, "\t.byte 0:"HOST_WIDE_INT_PRINT_UNSIGNED"\n",(SIZE));\ - } while (0) - -/* CAM does not allow us to declare a symbol as external first and then - define it in the same file later. Thus, we keep a list of all external - references, remove all symbols defined locally from it and output it at - the end of the asm file. */ - -#define ASM_OUTPUT_EXTERNAL(FILE,DECL,NAME) \ - unicosmk_add_extern ((NAME)) - -#define ASM_OUTPUT_EXTERNAL_LIBCALL(STREAM,SYMREF) \ - unicosmk_add_extern (XSTR ((SYMREF), 0)) - -/* This is how to declare an object. We don't have to output anything if - it is a global variable because those go into unique `common' sections - and the section name is globally visible. For local variables, we simply - output the label. In any case, we have to record that no extern - declaration should be generated for the symbol. */ - -#define ASM_DECLARE_OBJECT_NAME(STREAM,NAME,DECL) \ - do { tree name_tree; \ - name_tree = get_identifier ((NAME)); \ - TREE_ASM_WRITTEN (name_tree) = 1; \ - if (!TREE_PUBLIC (DECL)) \ - { \ - assemble_name (STREAM, NAME); \ - fputs (":\n", STREAM); \ - } \ - } while(0) - -/* Switch into a generic section. */ -#define TARGET_ASM_NAMED_SECTION unicosmk_asm_named_section -#define TARGET_ASM_INIT_SECTIONS unicosmk_init_sections - -#undef ASM_OUTPUT_MAX_SKIP_ALIGN -#define ASM_OUTPUT_MAX_SKIP_ALIGN(STREAM,POWER,MAXSKIP) - -#undef NM_FLAGS - -#undef OBJECT_FORMAT_COFF - -/* We cannot generate debugging information on Unicos/Mk. */ - -#undef SDB_DEBUGGING_INFO -#undef MIPS_DEBUGGING_INFO -#undef DBX_DEBUGGING_INFO -#undef DWARF2_DEBUGGING_INFO -#undef DWARF2_UNWIND_INFO -#undef INCOMING_RETURN_ADDR_RTX -#undef PREFERRED_DEBUGGING_TYPE - -/* We don't need a start file. */ - -#undef STARTFILE_SPEC -#define STARTFILE_SPEC "" - -/* These are the libraries we have to link with. - ??? The Craylibs directory should be autoconfed. */ -#undef LIB_SPEC -#define LIB_SPEC "-L/opt/ctl/craylibs/craylibs -lu -lm -lc -lsma" - -#define EH_FRAME_IN_DATA_SECTION 1 |