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

📄 nextstep.h

📁 gcc-2.95.3 Linux下最常用的C编译器
💻 H
📖 第 1 页 / 共 2 页
字号:
    fprintf (FILE, "\t%s %d\n", ALIGN_ASM_OP, (LOG))/* Ensure correct alignment of bss data.  */#undef	ASM_OUTPUT_ALIGNED_LOCAL#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \( fputs (".lcomm ", (FILE)),				\  assemble_name ((FILE), (NAME)),			\  fprintf ((FILE), ",%u,%u\n", (SIZE), floor_log2 ((ALIGN) / BITS_PER_UNIT)))/* Output #ident as a .ident.  */#undef	ASM_OUTPUT_IDENT#define ASM_OUTPUT_IDENT(FILE, NAME) fprintf (FILE, "\t.ident \"%s\"\n", NAME);/* The maximum alignment which the object file format can support.   For NeXT's Mach-O format, this is 2^15.  */#undef	MAX_OFILE_ALIGNMENT#define MAX_OFILE_ALIGNMENT 0x8000/* Create new Mach-O sections. */#undef	SECTION_FUNCTION#define SECTION_FUNCTION(FUNCTION, SECTION, DIRECTIVE, WAS_TEXT, OBJC)	\void									\FUNCTION ()								\{									\  extern void text_section ();					 	\  extern void objc_section_init ();					\  extern int flag_no_mach_text_sections;				\  									\  if (WAS_TEXT && flag_no_mach_text_sections)       			\    text_section ();							\  else if (in_section != SECTION)					\    {									\      if (OBJC)								\	objc_section_init ();						\      fprintf (asm_out_file, "%s\n", DIRECTIVE);			\      in_section = SECTION;						\    }									\}									\#undef	EXTRA_SECTIONS#define EXTRA_SECTIONS					\  in_const, in_cstring, in_literal4, in_literal8,	\  in_constructor, in_destructor,			\  in_objc_class, in_objc_meta_class, in_objc_category,	\  in_objc_class_vars, in_objc_instance_vars,		\  in_objc_cls_meth, in_objc_inst_meth,			\  in_objc_cat_cls_meth, in_objc_cat_inst_meth,		\  in_objc_selector_refs,				\  in_objc_symbols, in_objc_module_info,			\  in_objc_protocol, in_objc_string_object,		\  in_objc_class_names, in_objc_meth_var_names,		\  in_objc_meth_var_types, in_objc_cls_refs#undef	EXTRA_SECTION_FUNCTIONS#define EXTRA_SECTION_FUNCTIONS			\SECTION_FUNCTION (const_section,		\		  in_const,			\		  ".const", 1, 0)		\SECTION_FUNCTION (cstring_section,		\		  in_cstring,			\		  ".cstring", 1, 0)		\SECTION_FUNCTION (literal4_section,		\		  in_literal4,			\		  ".literal4", 1, 0)		\SECTION_FUNCTION (literal8_section,		\		  in_literal8,			\		  ".literal8", 1, 0)		\SECTION_FUNCTION (constructor_section,		\		  in_constructor,		\		  ".constructor", 0, 0)		\SECTION_FUNCTION (destructor_section,		\		  in_destructor,		\		  ".destructor", 0, 0)		\SECTION_FUNCTION (objc_class_section,		\		  in_objc_class,		\		  ".objc_class", 0, 1)		\SECTION_FUNCTION (objc_meta_class_section,	\		  in_objc_meta_class,		\		  ".objc_meta_class", 0, 1)	\SECTION_FUNCTION (objc_category_section,	\		  in_objc_category,		\		".objc_category", 0, 1)		\SECTION_FUNCTION (objc_class_vars_section,	\		  in_objc_class_vars,		\		  ".objc_class_vars", 0, 1)	\SECTION_FUNCTION (objc_instance_vars_section,	\		  in_objc_instance_vars,	\		  ".objc_instance_vars", 0, 1)	\SECTION_FUNCTION (objc_cls_meth_section,	\		  in_objc_cls_meth,		\		  ".objc_cls_meth", 0, 1)	\SECTION_FUNCTION (objc_inst_meth_section,	\		  in_objc_inst_meth,		\		  ".objc_inst_meth", 0, 1)	\SECTION_FUNCTION (objc_cat_cls_meth_section,	\		  in_objc_cat_cls_meth,		\		  ".objc_cat_cls_meth", 0, 1)	\SECTION_FUNCTION (objc_cat_inst_meth_section,	\		  in_objc_cat_inst_meth,	\		  ".objc_cat_inst_meth", 0, 1)	\SECTION_FUNCTION (objc_selector_refs_section,	\		  in_objc_selector_refs,	\		  ".objc_message_refs", 0, 1)	\SECTION_FUNCTION (objc_symbols_section,		\		  in_objc_symbols,		\		  ".objc_symbols", 0, 1)	\SECTION_FUNCTION (objc_module_info_section,	\		  in_objc_module_info,		\		  ".objc_module_info", 0, 1)	\SECTION_FUNCTION (objc_protocol_section,	\		  in_objc_protocol,		\		  ".objc_protocol", 0, 1)	\SECTION_FUNCTION (objc_string_object_section,	\		  in_objc_string_object,	\		  ".objc_string_object", 0, 1)	\SECTION_FUNCTION (objc_class_names_section,	\		in_objc_class_names,		\		".objc_class_names", 0, 1)	\SECTION_FUNCTION (objc_meth_var_names_section,	\		in_objc_meth_var_names,		\		".objc_meth_var_names", 0, 1)	\SECTION_FUNCTION (objc_meth_var_types_section,	\		in_objc_meth_var_types,		\		".objc_meth_var_types", 0, 1)	\SECTION_FUNCTION (objc_cls_refs_section,	\		in_objc_cls_refs,		\		".objc_cls_refs", 0, 1)		\						\void						\objc_section_init ()				\{						\  static int been_here = 0;			\						\  if (been_here == 0)				\    {						\      been_here = 1;				\      objc_class_section ();			\      objc_meta_class_section ();		\      objc_cat_cls_meth_section ();		\      objc_cat_inst_meth_section ();		\      objc_cls_meth_section ();			\      objc_inst_meth_section ();		\      objc_selector_refs_section ();		\      objc_symbols_section ();			\      objc_category_section ();			\      objc_protocol_section ();			\      objc_class_vars_section ();		\      objc_instance_vars_section ();		\      objc_module_info_section ();		\      objc_string_object_section ();		\      objc_class_names_section ();		\      objc_meth_var_names_section ();		\      objc_meth_var_types_section ();		\      objc_cls_refs_section ();			\    }						\}#undef	READONLY_DATA_SECTION#define READONLY_DATA_SECTION const_section#undef	SELECT_SECTION#define SELECT_SECTION(exp,reloc)				\  do								\    {								\      if (TREE_CODE (exp) == STRING_CST)			\	{							\	  if (flag_writable_strings)				\	    data_section ();					\	  else if (TREE_STRING_LENGTH (exp) !=			\		   strlen (TREE_STRING_POINTER (exp)) + 1)	\	    readonly_data_section ();				\	  else							\	    cstring_section ();					\	}							\      else if (TREE_CODE (exp) == INTEGER_CST			\	       || TREE_CODE (exp) == REAL_CST)			\        {							\	  tree size = TYPE_SIZE (TREE_TYPE (exp));		\	  							\	  if (TREE_CODE (size) == INTEGER_CST &&		\	      TREE_INT_CST_LOW (size) == 4 &&			\	      TREE_INT_CST_HIGH (size) == 0)			\	    literal4_section ();				\	  else if (TREE_CODE (size) == INTEGER_CST &&		\	      TREE_INT_CST_LOW (size) == 8 &&			\	      TREE_INT_CST_HIGH (size) == 0)			\	    literal8_section ();				\	  else							\	    readonly_data_section ();				\	}							\      else if (TREE_CODE (exp) == CONSTRUCTOR				\	       && TREE_TYPE (exp)					\	       && TREE_CODE (TREE_TYPE (exp)) == RECORD_TYPE		\	       && TYPE_NAME (TREE_TYPE (exp))				\	       && TREE_CODE (TYPE_NAME (TREE_TYPE (exp))) == IDENTIFIER_NODE \	       && IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE (exp))))	\	{								\	  if (!strcmp (IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE (exp))), \			"NXConstantString"))				\	  objc_string_object_section ();				\	else if ((TREE_READONLY (exp) || TREE_CONSTANT (exp))		\		&& !TREE_SIDE_EFFECTS (exp))				\	  readonly_data_section ();					\	else								\	  data_section ();						\      }									\      else if (TREE_CODE (exp) == VAR_DECL &&				\	       DECL_NAME (exp) &&					\	       TREE_CODE (DECL_NAME (exp)) == IDENTIFIER_NODE &&	\	       IDENTIFIER_POINTER (DECL_NAME (exp)) &&			\	       !strncmp (IDENTIFIER_POINTER (DECL_NAME (exp)), "_OBJC_", 6)) \	{								\	  const char *name = IDENTIFIER_POINTER (DECL_NAME (exp));	\	  								\	  if (!strncmp (name, "_OBJC_CLASS_METHODS_", 20))		\	    objc_cls_meth_section ();					\	  else if (!strncmp (name, "_OBJC_INSTANCE_METHODS_", 23))	\	    objc_inst_meth_section ();					\	  else if (!strncmp (name, "_OBJC_CATEGORY_CLASS_METHODS_", 20)) \	    objc_cat_cls_meth_section ();				\	  else if (!strncmp (name, "_OBJC_CATEGORY_INSTANCE_METHODS_", 23)) \	    objc_cat_inst_meth_section ();				\	  else if (!strncmp (name, "_OBJC_CLASS_VARIABLES_", 22))	\	    objc_class_vars_section ();					\	  else if (!strncmp (name, "_OBJC_INSTANCE_VARIABLES_", 25))	\	    objc_instance_vars_section ();				\	  else if (!strncmp (name, "_OBJC_CLASS_PROTOCOLS_", 22))	\	    objc_cat_cls_meth_section ();				\	  else if (!strncmp (name, "_OBJC_CLASS_NAME_", 17))		\	    objc_class_names_section ();				\	  else if (!strncmp (name, "_OBJC_METH_VAR_NAME_", 20))		\	    objc_meth_var_names_section ();				\	  else if (!strncmp (name, "_OBJC_METH_VAR_TYPE_", 20))		\	    objc_meth_var_types_section ();				\	  else if (!strncmp (name, "_OBJC_CLASS_REFERENCES", 22))	\	    objc_cls_refs_section ();					\	  else if (!strncmp (name, "_OBJC_CLASS_", 12))			\	    objc_class_section ();					\	  else if (!strncmp (name, "_OBJC_METACLASS_", 16))		\	    objc_meta_class_section ();					\	  else if (!strncmp (name, "_OBJC_CATEGORY_", 15))		\	    objc_category_section ();					\	  else if (!strncmp (name, "_OBJC_SELECTOR_REFERENCES", 25))	\	    objc_selector_refs_section ();				\	  else if (!strncmp (name, "_OBJC_SYMBOLS", 13))		\	    objc_symbols_section ();					\	  else if (!strncmp (name, "_OBJC_MODULES", 13))		\	    objc_module_info_section ();				\	  else if (!strncmp (name, "_OBJC_PROTOCOL_INSTANCE_METHODS_", 32)) \	    objc_cat_inst_meth_section ();                              \	  else if (!strncmp (name, "_OBJC_PROTOCOL_CLASS_METHODS_", 29)) \	    objc_cat_cls_meth_section ();                               \	  else if (!strncmp (name, "_OBJC_PROTOCOL_REFS_", 20))         \	    objc_cat_cls_meth_section ();                               \	  else if (!strncmp (name, "_OBJC_PROTOCOL_", 15))              \	    objc_protocol_section ();                                   \	  else if ((TREE_READONLY (exp) || TREE_CONSTANT (exp))		\		&& !TREE_SIDE_EFFECTS (exp))     			\	    readonly_data_section ();                                   \	  else								\	    data_section ();						\	}								\      else if (TREE_CODE (exp) == VAR_DECL)				\	{								\	  if ((flag_pic && reloc)					\	      || !TREE_READONLY (exp) || TREE_SIDE_EFFECTS (exp)	\	      || !DECL_INITIAL (exp)					\	      || (DECL_INITIAL (exp) != error_mark_node			\		  && !TREE_CONSTANT (DECL_INITIAL (exp))))		\	    data_section ();						\	  else								\	    readonly_data_section ();					\	}								\      else								\	readonly_data_section ();					\    }									\  while (0)#undef	SELECT_RTX_SECTION#define SELECT_RTX_SECTION(mode, rtx)					\  do									\    {									\      if (GET_MODE_SIZE(mode) == 8)					\	literal8_section();						\      else if (GET_MODE_SIZE(mode) == 4)				\	literal4_section();						\      else								\	const_section ();						\    }									\  while (0)#ifdef ASM_COMMENT_START# undef ASM_COMMENT_START#endif#define ASM_COMMENT_START ";#"

⌨️ 快捷键说明

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