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

📄 vms.h

📁 linux下的gcc编译器
💻 H
📖 第 1 页 / 共 2 页
字号:
#define LINK_SECTION_ASM_OP "\t.link"#define READONLY_DATA_SECTION_ASM_OP "\t.rdata"#define LITERALS_SECTION_ASM_OP "\t.literals"#define CTORS_SECTION_ASM_OP "\t.ctors"#define DTORS_SECTION_ASM_OP "\t.dtors"#undef EXTRA_SECTIONS#define EXTRA_SECTIONS	in_link, in_literals#undef EXTRA_SECTION_FUNCTIONS#define EXTRA_SECTION_FUNCTIONS					\void								\link_section ()							\{								\  if (in_section != in_link)					\    {								\      fprintf (asm_out_file, "%s\n", LINK_SECTION_ASM_OP); 	\      in_section = in_link;					\    }								\}                                                               \void								\literals_section ()						\{								\  if (in_section != in_literals)				\    {								\      fprintf (asm_out_file, "%s\n", LITERALS_SECTION_ASM_OP); 	\      in_section = in_literals;					\    }								\}extern void link_section	PARAMS ((void));extern void literals_section	PARAMS ((void));#undef ASM_OUTPUT_ADDR_DIFF_ELT#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) abort ()#undef ASM_OUTPUT_ADDR_VEC_ELT#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \  fprintf (FILE, "\t.quad $L%d\n", (VALUE))#undef CASE_VECTOR_MODE#define CASE_VECTOR_MODE DImode#undef CASE_VECTOR_PC_RELATIVE#undef ASM_OUTPUT_CASE_LABEL#define ASM_OUTPUT_CASE_LABEL(FILE,PREFIX,NUM,TABLEINSN)	\{ ASM_OUTPUT_ALIGN (FILE, 3); ASM_OUTPUT_INTERNAL_LABEL (FILE, PREFIX, NUM); }/* This says how to output assembler code to declare an                   uninitialized external linkage data object.  */ #define COMMON_ASM_OP "\t.comm\t"#undef ASM_OUTPUT_ALIGNED_COMMON#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN)		\do {									\  fprintf ((FILE), "%s", COMMON_ASM_OP);				\  assemble_name ((FILE), (NAME));					\  fprintf ((FILE), ",%u,%u\n", (SIZE), (ALIGN) / BITS_PER_UNIT);	\} while (0)/* Output assembler code for a block containing the constant parts   of a trampoline, leaving space for the variable parts.   The trampoline should set the static chain pointer to value placed   into the trampoline and should branch to the specified routine.     Note that $27 has been set to the address of the trampoline, so we can   use it for addressability of the two data items.  */#undef TRAMPOLINE_TEMPLATE#define TRAMPOLINE_TEMPLATE(FILE)		\{						\  fprintf (FILE, "\t.quad 0\n");		\  fprintf (FILE, "\t.linkage __tramp\n");	\  fprintf (FILE, "\t.quad 0\n");		\}/* Length in units of the trampoline for entering a nested function.  */#undef TRAMPOLINE_SIZE#define TRAMPOLINE_SIZE    32/* The alignment of a trampoline, in bits.  */#undef TRAMPOLINE_ALIGNMENT#define TRAMPOLINE_ALIGNMENT  64/* Emit RTL insns to initialize the variable parts of a trampoline.   FNADDR is an RTX for the address of the function's pure code.   CXT is an RTX for the static chain value for the function.  */#undef INITIALIZE_TRAMPOLINE#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \  alpha_initialize_trampoline (TRAMP, FNADDR, CXT, 16, 24, -1)/* Control how constructors and destructors are emitted.  */#define TARGET_ASM_CONSTRUCTOR  vms_asm_out_constructor#define TARGET_ASM_DESTRUCTOR   vms_asm_out_destructor#undef SDB_DEBUGGING_INFO#undef MIPS_DEBUGGING_INFO#undef DBX_DEBUGGING_INFO#define DWARF2_DEBUGGING_INFO 1#define VMS_DEBUGGING_INFO 1#define DWARF2_UNWIND_INFO 1#undef EH_RETURN_HANDLER_RTX#define EH_RETURN_HANDLER_RTX \  gen_rtx_MEM (Pmode, plus_constant (stack_pointer_rtx, 8))#define LINK_EH_SPEC "vms-dwarf2eh.o%s "#ifdef IN_LIBGCC2#include <pdscdef.h>#define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS)		\ do {									\  PDSCDEF *pv = *((PDSCDEF **) (CONTEXT)->reg [29]);                    \									\  if (pv && ((long) pv & 0x7) == 0) /* low bits 0 means address */      \    pv = *(PDSCDEF **) pv;                                              \									\  if (pv && ((pv->pdsc$w_flags & 0xf) == PDSC$K_KIND_FP_STACK))		\    {									\      int i, j;								\									\      (FS)->cfa_offset = pv->pdsc$l_size;				\      (FS)->cfa_reg = pv->pdsc$w_flags & PDSC$M_BASE_REG_IS_FP ? 29 : 30; \      (FS)->retaddr_column = 26;					\      (FS)->cfa_how = CFA_REG_OFFSET;					\      (FS)->regs.reg[27].loc.offset = -pv->pdsc$l_size;			\      (FS)->regs.reg[27].how = REG_SAVED_OFFSET;			\      (FS)->regs.reg[26].loc.offset					\	 = -(pv->pdsc$l_size - pv->pdsc$w_rsa_offset);			\      (FS)->regs.reg[26].how = REG_SAVED_OFFSET;			\									\      for (i = 0, j = 0; i < 32; i++)					\	if (1<<i & pv->pdsc$l_ireg_mask)				\	  {								\	    (FS)->regs.reg[i].loc.offset				\	      = -(pv->pdsc$l_size - pv->pdsc$w_rsa_offset - 8 * ++j);	\	    (FS)->regs.reg[i].how = REG_SAVED_OFFSET;			\	  }								\									\      goto SUCCESS;							\    }									\  else if (pv && ((pv->pdsc$w_flags & 0xf) == PDSC$K_KIND_FP_REGISTER))	\    {									\      (FS)->cfa_offset = pv->pdsc$l_size;				\      (FS)->cfa_reg = pv->pdsc$w_flags & PDSC$M_BASE_REG_IS_FP ? 29 : 30; \      (FS)->retaddr_column = 26;					\      (FS)->cfa_how = CFA_REG_OFFSET;					\      (FS)->regs.reg[26].loc.reg = pv->pdsc$b_save_ra;			\      (FS)->regs.reg[26].how = REG_SAVED_REG;			        \      (FS)->regs.reg[29].loc.reg = pv->pdsc$b_save_fp;			\      (FS)->regs.reg[29].how = REG_SAVED_REG;			        \									\      goto SUCCESS;							\    }									\} while (0)#endif/* This is how to output an assembler line   that says to advance the location counter   to a multiple of 2**LOG bytes.  */#undef ASM_OUTPUT_ALIGN#define ASM_OUTPUT_ALIGN(FILE,LOG)	\    fprintf (FILE, "\t.align %d\n", LOG);/* Switch into a generic section.  */#define TARGET_ASM_NAMED_SECTION vms_asm_named_section#define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2)				\  do {	literals_section();                                             \	fprintf ((FILE), "\t");						\	assemble_name (FILE, LABEL1);					\	fprintf (FILE, " = ");						\	assemble_name (FILE, LABEL2);					\	fprintf (FILE, "\n");						\  } while (0)#undef PREFERRED_DEBUGGING_TYPE#define PREFERRED_DEBUGGING_TYPE VMS_AND_DWARF2_DEBUG#undef ASM_FORMAT_PRIVATE_NAME#define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO)	\( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 12),	\  sprintf ((OUTPUT), "%s___%d", (NAME), (LABELNO)))/* ??? VMS uses different linkage.  */#undef TARGET_ASM_OUTPUT_MI_THUNK#undef ASM_SPEC#undef ASM_FINAL_SPEC/* The VMS convention is to always provide minimal debug info   for a traceback unless specifically overridden.  Defaulting this here   is a kludge.  */#define OPTIMIZATION_OPTIONS(OPTIMIZE, OPTIMIZE_SIZE) \{                                                  \   write_symbols = VMS_DEBUG;                      \   debug_info_level = (enum debug_info_level) 1;   \}/* Override traceback debug info on -g0.  */#undef OVERRIDE_OPTIONS#define OVERRIDE_OPTIONS                           \{                                                  \   if (write_symbols == NO_DEBUG)                  \     debug_info_level = (enum debug_info_level) 0; \   override_options ();                            \}/* Link with vms-dwarf2.o if -g (except -g0). This causes the   VMS link to pull all the dwarf2 debug sections together. */#undef LINK_SPEC#define LINK_SPEC "%{g:-g vms-dwarf2.o%s} %{g0} %{g1:-g1 vms-dwarf2.o%s} \%{g2:-g2 vms-dwarf2.o%s} %{g3:-g3 vms-dwarf2.o%s} %{shared} %{v} %{map}"#undef STARTFILE_SPEC#define STARTFILE_SPEC "%{!shared:%{mvms-return-codes:vcrt0.o%s} \%{!mvms-return-codes:pcrt0.o%s}}"#undef LIB_SPEC#define LIB_SPEC "-lc"/* Define the names of the division and modulus functions.  */#define DIVSI3_LIBCALL "OTS$DIV_I"#define DIVDI3_LIBCALL "OTS$DIV_L"#define UDIVSI3_LIBCALL "OTS$DIV_UI"#define UDIVDI3_LIBCALL "OTS$DIV_UL"#define MODSI3_LIBCALL "OTS$REM_I"#define MODDI3_LIBCALL "OTS$REM_L"#define UMODSI3_LIBCALL "OTS$REM_UI"#define UMODDI3_LIBCALL "OTS$REM_UL"#define NAME__MAIN "__gccmain"#define SYMBOL__MAIN __gccmain#define MD_EXEC_PREFIX "/gnu/lib/gcc-lib/"#define MD_STARTFILE_PREFIX "/gnu/lib/gcc-lib/"/* Specify the list of include file directories.  */#define INCLUDE_DEFAULTS		   \{					   \  { "/gnu/lib/gcc-lib/include", 0, 0, 0 }, \  { "/gnu_gxx_include", 0, 1, 1 },	   \  { "/gnu_cc_include", 0, 0, 0 },	   \  { "/gnu/include", 0, 0, 0 },	           \  { 0, 0, 0, 0 }			   \}#define LONGLONG_STANDALONE 1

⌨️ 快捷键说明

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