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

📄 sco5.h

📁 gcc编译工具没有什么特别
💻 H
📖 第 1 页 / 共 3 页
字号:
	      break;							\	    default:							\	      putc ('\\', (FILE));					\	      putc (escape, (FILE));					\	      break;							\	    }								\        }								\      fprintf ((FILE), "\"\n");						\    }									\  while (0)#undef ASM_OUTPUT_ASCII#define ASM_OUTPUT_ASCII(FILE, STR, LENGTH)				\do {									\      register unsigned char *_ascii_bytes = (unsigned char *) (STR);	\      register unsigned char *limit = _ascii_bytes + (LENGTH);		\      register unsigned bytes_in_chunk = 0;				\      for (; _ascii_bytes < limit; _ascii_bytes++)			\        {								\	  register unsigned char *p;					\	  if (bytes_in_chunk >= 64)					\	    {								\	      fputc ('\n', (FILE));					\	      bytes_in_chunk = 0;					\	    }								\	  for (p = _ascii_bytes; p < limit && *p != '\0'; p++)		\	    continue;							\	  if (p < limit && (p - _ascii_bytes) <= STRING_LIMIT)		\	    {								\	      if (bytes_in_chunk > 0)					\		{							\		  fputc ('\n', (FILE));					\		  bytes_in_chunk = 0;					\		}							\	      ASM_OUTPUT_LIMITED_STRING ((FILE), _ascii_bytes);		\	      _ascii_bytes = p;						\	    }								\	  else								\	    {								\	      if (bytes_in_chunk == 0)					\		fprintf ((FILE), "%s\t", ASM_BYTE_OP);			\	      else							\		fputc (',', (FILE));					\	      fprintf ((FILE), "0x%02x", *_ascii_bytes);		\	      bytes_in_chunk += 5;					\	    }								\	}								\      if (bytes_in_chunk > 0)						\        fprintf ((FILE), "\n");						\} while (0) /* Must use data section for relocatable constants when pic.  */#undef SELECT_RTX_SECTION#define SELECT_RTX_SECTION(MODE,RTX)					\{									\  if (TARGET_ELF) {							\    if (flag_pic && symbolic_operand (RTX))				\      data_section ();							\    else								\      const_section ();							\  } else								\    readonly_data_section();						\}#undef ASM_OUTPUT_CASE_LABEL#define ASM_OUTPUT_CASE_LABEL(FILE,PREFIX,NUM,JUMPTABLE)		\do {									\  if (TARGET_ELF)							\    ASM_OUTPUT_ALIGN ((FILE), 2);					\  ASM_OUTPUT_INTERNAL_LABEL((FILE),(PREFIX),(NUM));			\} while (0)#undef ASM_OUTPUT_CONSTRUCTOR#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME)				\do {									\  if (TARGET_ELF) {							\     ctors_section ();							\     fprintf (FILE, "%s\t ", INT_ASM_OP);				\     assemble_name (FILE, NAME);					\     fprintf (FILE, "\n");						\  } else {								\    init_section ();							\    fprintf (FILE, "\tpushl $");					\    assemble_name (FILE, NAME);						\    fprintf (FILE, "\n"); }						\  } while (0)#undef ASM_OUTPUT_DESTRUCTOR#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME)				\do {									\  if (TARGET_ELF) {							\    dtors_section ();                   				\    fprintf (FILE, "%s\t ", INT_ASM_OP);				\    assemble_name (FILE, NAME);              				\    fprintf (FILE, "\n");						\  } else {								\    fini_section ();                   					\    fprintf (FILE, "%s\t ", ASM_LONG);					\    assemble_name (FILE, NAME);              				\    fprintf (FILE, "\n"); }						\  } while (0)#undef ASM_OUTPUT_IDENT#define ASM_OUTPUT_IDENT(FILE, NAME) \  fprintf (FILE, "%s\t\"%s\"\n", IDENT_ASM_OP, NAME);#undef ASM_GLOBALIZE_LABEL#define ASM_GLOBALIZE_LABEL(FILE,NAME)	\  (fprintf ((FILE), "%s ", GLOBAL_ASM_OP), assemble_name (FILE, NAME), fputs ("\n", FILE))#undef ASM_OUTPUT_EXTERNAL_LIBCALL#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN)				\  if (TARGET_ELF) ASM_GLOBALIZE_LABEL (FILE, XSTR (FUN, 0))#undef ASM_OUTPUT_INTERNAL_LABEL#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)			\  fprintf (FILE, ".%s%d:\n", PREFIX, NUM)/* The prefix to add to user-visible assembler symbols. */#undef USER_LABEL_PREFIX#define USER_LABEL_PREFIX ""/*  * Compensate for the difference between ELF and COFF assembler syntax. * Otherwise, this is cribbed from ../svr4.h. * We rename 'gcc_except_table' to the shorter name in preparation * for the day when we're ready to do DWARF2 eh unwinding under COFF  */#undef ASM_OUTPUT_SECTION_NAME#define ASM_OUTPUT_SECTION_NAME(FILE, DECL, NAME, RELOC) \do {									\  static struct section_info                                            \    {                                                                   \      struct section_info *next;                                        \      char *name;                                                       \      enum sect_enum {SECT_RW, SECT_RO, SECT_EXEC} type;                \    } *sections;                                                        \  struct section_info *s;                                               \  char *mode;                                                           \  enum sect_enum type;                                                  \  char *sname = NAME ;							\  if (strcmp(NAME, ".gcc_except_table") == 0) sname = ".gccexc" ;	\                                                                        \  for (s = sections; s; s = s->next)                                    \    if (!strcmp (NAME, s->name))                                        \      break;                                                            \                                                                        \  if (DECL && TREE_CODE (DECL) == FUNCTION_DECL)                        \    type = SECT_EXEC, mode = (TARGET_ELF) ? "ax" : "x" ;                \  else if (DECL && DECL_READONLY_SECTION (DECL, RELOC))                 \    type = SECT_RO, mode = "a";                                         \  else                                                                  \    type = SECT_RW, mode = (TARGET_ELF) ? "aw" : "w" ;                  \                                                                        \  if (s == 0)                                                           \    {                                                                   \      s = (struct section_info *) xmalloc (sizeof (struct section_info));  \      s->name = xmalloc ((strlen (NAME) + 1) * sizeof (*NAME));         \      strcpy (s->name, NAME);                                           \      s->type = type;                                                   \      s->next = sections;                                               \      sections = s;                                                     \      fprintf (FILE, ".section\t%s,\"%s\"%s\n", sname, mode,		\		(TARGET_ELF) ? ",@progbits" : "" );    			\    }                                                                   \  else                                                                  \    {                                                                   \      if (DECL && s->type != type)                                      \        error_with_decl (DECL, "%s causes a section type conflict");    \                                                                        \      fprintf (FILE, ".section\t%s\n", sname);                          \    }                                                                   \} while (0)#undef ASM_OUTPUT_SKIP#define ASM_OUTPUT_SKIP(FILE,SIZE) \do {									\  if (TARGET_ELF)							\    fprintf (FILE, "%s\t%u\n", SKIP_ASM_OP, (SIZE));			\  else									\    fprintf ((FILE), "%s\t.,.+%u\n", SET_ASM_OP, (SIZE));		\} while (0)#undef CTOR_LIST_BEGIN#define CTOR_LIST_BEGIN							\do {									\  asm (CTORS_SECTION_ASM_OP);						\  if (TARGET_ELF)							\    STATIC func_ptr __CTOR_LIST__[1] = { (func_ptr) (-1) };		\  else									\    asm ("pushl $0");							\} while (0)#undef CTOR_LIST_END#define CTOR_LIST_END							\do {									\  if (TARGET_ELF) {							\    asm (CTORS_SECTION_ASM_OP);						\    STATIC func_ptr __CTOR_LIST__[1] = { (func_ptr) (0) };		\  } else {								\    CTOR_LIST_BEGIN;							\  }									\} while (0)#undef DBX_BLOCKS_FUNCTION_RELATIVE#define DBX_BLOCKS_FUNCTION_RELATIVE 1#undef DBX_FUNCTION_FIRST#define DBX_FUNCTION_FIRST 1#undef DBX_REGISTER_NUMBER#define DBX_REGISTER_NUMBER(n)						\((TARGET_ELF) ?								\ ((n) == 0 ? 0 								\  : (n) == 1 ? 2 							\  : (n) == 2 ? 1 							\  : (n) == 3 ? 3 							\  : (n) == 4 ? 6 							\  : (n) == 5 ? 7 							\  : (n) == 6 ? 5 							\  : (n) == 7 ? 4 							\  : ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 		\  : (-1))								\ :									\ ((n) == 0 ? 0 : 							\  (n) == 1 ? 2 : 							\  (n) == 2 ? 1 : 							\  (n) == 3 ? 3 : 							\  (n) == 4 ? 6 : 							\  (n) == 5 ? 7 : 							\  (n) == 6 ? 4 : 							\  (n) == 7 ? 5 : 							\  (n) + 4))#undef DWARF_DEBUGGING_INFO#undef SDB_DEBUGGING_INFO#undef DBX_DEBUGGING_INFO#undef PREFERRED_DEBUGGING_TYPE#define DWARF_DEBUGGING_INFO 1#define SDB_DEBUGGING_INFO   1#define DBX_DEBUGGING_INFO   1#define PREFERRED_DEBUGGING_TYPE					\  ((TARGET_ELF) ? DWARF_DEBUG: SDB_DEBUG)#undef EXTRA_SECTIONS#define EXTRA_SECTIONS in_const, in_init, in_fini, in_ctors, in_dtors#undef EXTRA_SECTION_FUNCTIONS#define EXTRA_SECTION_FUNCTIONS						\  CONST_SECTION_FUNCTION						\  INIT_SECTION_FUNCTION							\  FINI_SECTION_FUNCTION							\  CTORS_SECTION_FUNCTION						\  DTORS_SECTION_FUNCTION#undef CONST_SECTION_FUNCTION#define CONST_SECTION_FUNCTION						\void									\const_section ()							\{									\  extern void text_section();						\  if (!USE_CONST_SECTION)						\    text_section();							\  else if (in_section != in_const)					\    {									\      fprintf (asm_out_file, "%s\n", CONST_SECTION_ASM_OP);		\      in_section = in_const;						\    }									\}#undef FINI_SECTION_FUNCTION#define FINI_SECTION_FUNCTION						\void									\fini_section ()								\{									\  if ((!TARGET_ELF) && in_section != in_fini)				\    {									\      fprintf (asm_out_file, "%s\n", FINI_SECTION_ASM_OP);		\      in_section = in_fini;						\    }									\}#undef INIT_SECTION_FUNCTION#define INIT_SECTION_FUNCTION						\void									\init_section ()								\{									\  if ((!TARGET_ELF) && in_section != in_init)				\    {									\      fprintf (asm_out_file, "%s\n", INIT_SECTION_ASM_OP);		\      in_section = in_init;						\    }									\}#undef CTORS_SECTION_FUNCTION#define CTORS_SECTION_FUNCTION						\void									\ctors_section ()							\{									\  if (in_section != in_ctors)						\    {									\      fprintf (asm_out_file, "%s\n", CTORS_SECTION_ASM_OP);		\      in_section = in_ctors;						\    }									\}#undef DTORS_SECTION_FUNCTION#define DTORS_SECTION_FUNCTION						\void									\dtors_section ()							\{									\  if (in_section != in_dtors)						\    {									\      fprintf (asm_out_file, "%s\n", DTORS_SECTION_ASM_OP);		\      in_section = in_dtors;						\    }									\}#undef FRAME_POINTER_REQUIRED#define FRAME_POINTER_REQUIRED						\

⌨️ 快捷键说明

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