⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dgux.c

📁 gcc编译工具没有什么特别
💻 C
字号:
/* Subroutines for GNU compiler for Intel 80x86 running DG/ux   Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc.   Currently maintained by (gcc@dg-rtp.dg.com)This file is part of GNU CC.GNU CC is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe 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 ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU CC; see the file COPYING.  If not, write tothe Free Software Foundation, 59 Temple Place - Suite 330,Boston, MA 02111-1307, USA.  */#include <time.h>#include "i386/i386.c"extern char *version_string;struct option{  char *string;  int *variable;  int on_value;  char *description;};static intoutput_option (file, sep, type, name, indent, pos, max)     FILE *file;     char *sep;     char *type;     char *name;     char *indent;     int pos;     int max;{  if (strlen (sep) + strlen (type) + strlen (name) + pos > max)    {      fprintf (file, indent);      return fprintf (file, "%s%s", type, name);    }  return pos + fprintf (file, "%s%s%s", sep, type, name);}static struct { char *name; int value; } m_options[] = TARGET_SWITCHES;static voidoutput_options (file, f_options, f_len, W_options, W_len,		pos, max, sep, indent, term)     FILE *file;     struct option *f_options;     struct option *W_options;     int f_len, W_len;     int pos;     int max;     char *indent;     char *term;{  register int j;  if (optimize)    pos = output_option (file, sep, "-O", "", indent, pos, max);  if (write_symbols != NO_DEBUG)    pos = output_option (file, sep, "-g", "", indent, pos, max);/*  if (flag_traditional)    pos = output_option (file, sep, "-traditional", "", indent, pos, max);*/  if (profile_flag)    pos = output_option (file, sep, "-p", "", indent, pos, max);  if (profile_block_flag)    pos = output_option (file, sep, "-a", "", indent, pos, max);  for (j = 0; j < f_len; j++)    if (*f_options[j].variable == f_options[j].on_value)      pos = output_option (file, sep, "-f", f_options[j].string,			   indent, pos, max);  for (j = 0; j < W_len; j++)    if (*W_options[j].variable == W_options[j].on_value)      pos = output_option (file, sep, "-W", W_options[j].string,			   indent, pos, max);  for (j = 0; j < sizeof m_options / sizeof m_options[0]; j++)    if (m_options[j].name[0] != '\0'	&& m_options[j].value > 0	&& ((m_options[j].value & target_flags)	    == m_options[j].value))      pos = output_option (file, sep, "-m", m_options[j].name,			   indent, pos, max);  pos = output_option (file, sep, "-mcpu=", ix86_cpu_string, indent, pos, max);  pos = output_option (file, sep, "-march=", ix86_arch_string, indent, pos, max);  fprintf (file, term);}/* Output to FILE the start of the assembler file.  */voidoutput_file_start (file, f_options, f_len, W_options, W_len)     FILE *file;     struct option *f_options;     struct option *W_options;     int f_len, W_len;{  register int pos;  output_file_directive (file, main_input_filename);  fprintf (file, "\t.version\t\"01.01\"\n");			\  /* Switch to the data section so that the coffsem symbol and the     gcc2_compiled. symbol aren't in the text section.  */  data_section ();  pos = fprintf (file, "\n// cc1 (%s) arguments:", VERSION_STRING);  output_options (file, f_options, f_len, W_options, W_len,		  pos, 75, " ", "\n// ", "\n\n");#ifdef TARGET_IDENTIFY_REVISION  if (TARGET_IDENTIFY_REVISION)    {      char indent[256];      time_t now = time ((time_t *)0);      sprintf (indent, "]\"\n\t%s\t \"@(#)%s [", IDENT_ASM_OP, main_input_filename);      fprintf (file, indent+3);      pos = fprintf (file, "gcc %s, %.24s,", VERSION_STRING, ctime (&now));      output_options (file, f_options, f_len, W_options, W_len,		      pos, 150 - strlen (indent), " ", indent, "]\"\n\n");    }#endif /* TARGET_IDENTIFY_REVISION */}#ifndef CROSS_COMPILE#if defined (_abort_aux) /* Debugging aid to be registered via `atexit'.  See the definition   of abort in dgux.h.  */voidabort_aux (){  extern int insn_;  extern char * file_;  extern int line_;  static int done;  rtx line_note;  if (done++)    return;  if (file_ || line_)    {      if (write_symbols != NO_DEBUG)	{	  for (line_note = (rtx) insn_ ; line_note != 0 ; line_note = PREV_INSN (line_note))	    if (GET_CODE (line_note) == NOTE && NOTE_LINE_NUMBER (line_note) > 0)	      break;	  if (line_note != 0)	    {	      error_with_file_and_line (NOTE_SOURCE_FILE (line_note),					NOTE_LINE_NUMBER (line_note),					"Internal gcc abort from %s:%d",					file_ ? file_ : "<nofile>", line_);	      if (insn_ && file_ && strcmp (file_, "toplev.c"))		{		  error_with_file_and_line (NOTE_SOURCE_FILE (line_note),					    NOTE_LINE_NUMBER (line_note),					    "The local variable `insn' has the value:", 0);		  debug_rtx ((rtx) insn_);		}	    }	}      if (write_symbols == NO_DEBUG || line_note == 0)	{	  error ("Internal gcc abort from %s:%d",		 file_ ? file_ : "<nofile>", line_);	  if (insn_ && file_ && strcmp (file_, "toplev.c"))	    {	      error ("The local variable `insn' has the value:", 0);	      debug_rtx ((rtx) insn_);	    }	}    }}#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -