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

📄 sysv4.h

📁 gcc3.2.1源代码
💻 H
📖 第 1 页 / 共 4 页
字号:
   On the rs6000, we must keep the backchain up to date.  In order   to simplify things, always allocate 16 bytes for a push (System V   wants to keep stack aligned to a 16 byte boundary).  */#define	ASM_OUTPUT_REG_PUSH(FILE, REGNO)				\do {									\  if (DEFAULT_ABI == ABI_V4)						\    asm_fprintf (FILE,							\		 (TARGET_32BIT						\		  ? "\t{stu|stwu} %s,-16(%s)\n\t{st|stw} %s,12(%s)\n"	\		  : "\tstdu %s,-32(%s)\n\tstd %s,24(%s)\n"),		\		 reg_names[1], reg_names[1], reg_names[REGNO],		\		 reg_names[1]);						\} while (0)/* This is how to output an insn to pop a register from the stack.   It need not be very fast code.  */#define	ASM_OUTPUT_REG_POP(FILE, REGNO)					\do {									\  if (DEFAULT_ABI == ABI_V4)						\    asm_fprintf (FILE,							\		 (TARGET_32BIT						\		  ? "\t{l|lwz} %s,12(%s)\n\t{ai|addic} %s,%s,16\n"	\		  : "\tld %s,24(%s)\n\t{ai|addic} %s,%s,32\n"),		\		 reg_names[REGNO], reg_names[1], reg_names[1],		\		 reg_names[1]);						\} while (0)/* Switch  Recognition by gcc.c.  Add -G xx support.  *//* Override svr4.h definition.  */#undef	SWITCH_TAKES_ARG#define	SWITCH_TAKES_ARG(CHAR)						\  ((CHAR) == 'D' || (CHAR) == 'U' || (CHAR) == 'o'			\   || (CHAR) == 'e' || (CHAR) == 'T' || (CHAR) == 'u'			\   || (CHAR) == 'I' || (CHAR) == 'm' || (CHAR) == 'x'			\   || (CHAR) == 'L' || (CHAR) == 'A' || (CHAR) == 'V'			\   || (CHAR) == 'B' || (CHAR) == 'b' || (CHAR) == 'G')/* Output .file.  *//* Override elfos.h definition.  */#undef	ASM_FILE_START#define	ASM_FILE_START(FILE)						\do {									\  output_file_directive ((FILE), main_input_filename);			\  rs6000_file_start (FILE, TARGET_CPU_DEFAULT);				\} while (0)extern int fixuplabelno;/* Handle constructors specially for -mrelocatable.  */#define TARGET_ASM_CONSTRUCTOR  rs6000_elf_asm_out_constructor#define TARGET_ASM_DESTRUCTOR   rs6000_elf_asm_out_destructor/* This is the end of what might become sysv4.h.  *//* Use DWARF 2 debugging information by default.  */#undef	PREFERRED_DEBUGGING_TYPE#define	PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG/* Historically we have also supported stabs debugging.  */#define	DBX_DEBUGGING_INFO/* If we are referencing a function that is static or is known to be   in this file, make the SYMBOL_REF special.  We can use this to indicate   that we can branch to this function without emitting a no-op after the   call.  For real AIX calling sequences, we also replace the   function name with the real name (1 or 2 leading .'s), rather than   the function descriptor name.  This saves a lot of overriding code   to read the prefixes.  */#undef	ENCODE_SECTION_INFO#define	ENCODE_SECTION_INFO(DECL) rs6000_encode_section_info (DECL)/* The ELF version doesn't encode [DS] or whatever at the end of symbols.  */#define	RS6000_OUTPUT_BASENAME(FILE, NAME)	\    assemble_name (FILE, NAME)/* This macro gets just the user-specified name   out of the string in a SYMBOL_REF.  Discard   a leading * or @.  */#define	STRIP_NAME_ENCODING(VAR,SYMBOL_NAME)				\do {									\  const char *_name = SYMBOL_NAME;					\  while (*_name == '*' || *_name == '@')				\    _name++;								\  (VAR) = _name;							\} while (0)/* This is how to output a reference to a user-level label named NAME.   `assemble_name' uses this.  *//* Override elfos.h definition.  */#undef	ASM_OUTPUT_LABELREF#define	ASM_OUTPUT_LABELREF(FILE,NAME)		\do {						\  const char *_name = NAME;			\  if (*_name == '@')				\    _name++;					\ 						\  if (*_name == '*')				\    fprintf (FILE, "%s", _name + 1);		\  else						\    asm_fprintf (FILE, "%U%s", _name);		\} while (0)/* But, to make this work, we have to output the stabs for the function   name *first*...  */#define	DBX_FUNCTION_FIRST/* This is the end of what might become sysv4dbx.h.  */#ifndef	TARGET_VERSION#define	TARGET_VERSION fprintf (stderr, " (PowerPC System V.4)");#endif#ifndef	CPP_PREDEFINES#define	CPP_PREDEFINES \  "-DPPC -Dunix -D__svr4__ -Asystem=unix -Asystem=svr4 -Acpu=powerpc -Amachine=powerpc"#endif/* Pass various options to the assembler.  *//* Override svr4.h definition.  */#undef	ASM_SPEC#define	ASM_SPEC "%(asm_cpu) \%{.s: %{mregnames} %{mno-regnames}} %{.S: %{mregnames} %{mno-regnames}} \%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} \%{mrelocatable} %{mrelocatable-lib} %{fpic:-K PIC} %{fPIC:-K PIC} \%{memb} %{!memb: %{msdata: -memb} %{msdata=eabi: -memb}} \%{mlittle} %{mlittle-endian} %{mbig} %{mbig-endian} \%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \    %{mcall-freebsd: -mbig} \    %{mcall-i960-old: -mlittle} \    %{mcall-linux: -mbig} \    %{mcall-gnu: -mbig} \    %{mcall-netbsd: -mbig} \}}}}"#define	CC1_ENDIAN_BIG_SPEC ""#define	CC1_ENDIAN_LITTLE_SPEC "\%{!mstrict-align: %{!mno-strict-align: \    %{!mcall-i960-old: \	-mstrict-align \    } \}}"#define	CC1_ENDIAN_DEFAULT_SPEC "%(cc1_endian_big)"/* Pass -G xxx to the compiler and set correct endian mode.  */#define	CC1_SPEC "%{G*} \%{mlittle: %(cc1_endian_little)} %{!mlittle: %{mlittle-endian: %(cc1_endian_little)}} \%{mbig: %(cc1_endian_big)} %{!mbig: %{mbig-endian: %(cc1_endian_big)}} \%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \    %{mcall-aixdesc: -mbig %(cc1_endian_big) } \    %{mcall-freebsd: -mbig %(cc1_endian_big) } \    %{mcall-i960-old: -mlittle %(cc1_endian_little) } \    %{mcall-linux: -mbig %(cc1_endian_big) } \    %{mcall-gnu: -mbig %(cc1_endian_big) } \    %{mcall-netbsd: -mbig %(cc1_endian_big) } \    %{!mcall-aixdesc: %{!mcall-freebsd: %{!mcall-i960-old: %{!mcall-linux: %{!mcall-gnu: %{!mcall-netbsd: \	    %(cc1_endian_default) \    }}}}}} \}}}} \%{mno-sdata: -msdata=none } \%{meabi: %{!mcall-*: -mcall-sysv }} \%{!meabi: %{!mno-eabi: \    %{mrelocatable: -meabi } \    %{mcall-freebsd: -mno-eabi } \    %{mcall-i960-old: -meabi } \    %{mcall-linux: -mno-eabi } \    %{mcall-gnu: -mno-eabi } \    %{mcall-netbsd: -mno-eabi }}} \%{msdata: -msdata=default} \%{mno-sdata: -msdata=none} \%{profile: -p}"/* Don't put -Y P,<path> for cross compilers.  */#ifndef CROSS_COMPILE#define LINK_PATH_SPEC "\%{!R*:%{L*:-R %*}} \%{!nostdlib: %{!YP,*: \    %{compat-bsd: \	%{p:-Y P,/usr/ucblib:/usr/ccs/lib/libp:/usr/lib/libp:/usr/ccs/lib:/usr/lib} \	%{!p:-Y P,/usr/ucblib:/usr/ccs/lib:/usr/lib}} \	%{!R*: %{!L*: -R /usr/ucblib}} \    %{!compat-bsd: \	%{p:-Y P,/usr/ccs/lib/libp:/usr/lib/libp:/usr/ccs/lib:/usr/lib} \	%{!p:-Y P,/usr/ccs/lib:/usr/lib}}}}"#else#define LINK_PATH_SPEC ""#endif/* Default starting address if specified.  */#define LINK_START_SPEC "\%{mads: %(link_start_ads) } \%{myellowknife: %(link_start_yellowknife) } \%{mmvme: %(link_start_mvme) } \%{msim: %(link_start_sim) } \%{mcall-freebsd: %(link_start_freebsd) } \%{mcall-linux: %(link_start_linux) } \%{mcall-gnu: %(link_start_gnu) } \%{mcall-netbsd: %(link_start_netbsd) } \%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-gnu: \	%{!mcall-netbsd: %{!mcall-freebsd: %(link_start_default) }}}}}}}}"#define LINK_START_DEFAULT_SPEC ""/* Override svr4.h definition.  */#undef	LINK_SPEC#define	LINK_SPEC "\%{h*} %{v:-V} %{!msdata=none:%{G*}} %{msdata=none:-G0} \%{YP,*} %{R*} \%{Qy:} %{!Qn:-Qy} \%(link_shlib) \%{!Wl,-T*: %{!T*: %(link_start) }} \%(link_target) \%(link_os)"/* For now, turn off shared libraries by default.  */#ifndef SHARED_LIB_SUPPORT#define NO_SHARED_LIB_SUPPORT#endif#ifndef NO_SHARED_LIB_SUPPORT/* Shared libraries are default.  */#define LINK_SHLIB_SPEC "\%{!static: %(link_path) %{!R*:%{L*:-R %*}}} \%{mshlib: } \%{static:-dn -Bstatic} \%{shared:-G -dy -z text} \%{symbolic:-Bsymbolic -G -dy -z text}"#else/* Shared libraries are not default.  */#define LINK_SHLIB_SPEC "\%{mshlib: %(link_path) } \%{!mshlib: %{!shared: %{!symbolic: -dn -Bstatic}}} \%{static: } \%{shared:-G -dy -z text %(link_path) } \%{symbolic:-Bsymbolic -G -dy -z text %(link_path) }"#endif/* Override the default target of the linker.  */#define	LINK_TARGET_SPEC "\%{mlittle: --oformat elf32-powerpcle } %{mlittle-endian: --oformat elf32-powerpcle } \%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \    %{mcall-i960-old: --oformat elf32-powerpcle} \  }}}}"/* Any specific OS flags.  */#define LINK_OS_SPEC "\%{mads: %(link_os_ads) } \%{myellowknife: %(link_os_yellowknife) } \%{mmvme: %(link_os_mvme) } \%{msim: %(link_os_sim) } \%{mcall-freebsd: %(link_os_freebsd) } \%{mcall-linux: %(link_os_linux) } \%{mcall-gnu: %(link_os_gnu) } \%{mcall-netbsd: %(link_os_netbsd) } \%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: %{!mcall-netbsd: %(link_os_default) }}}}}}}}"#define LINK_OS_DEFAULT_SPEC ""#define CPP_SYSV_SPEC \"%{mrelocatable*: -D_RELOCATABLE} \%{fpic: -D__PIC__=1 -D__pic__=1} \%{!fpic: %{fPIC: -D__PIC__=2 -D__pic__=2}} \%{mlong-double-128: -D__LONG_DOUBLE_128__=1} \%{!mlong-double-64: %(cpp_longdouble_default)} \%{mcall-sysv: -D_CALL_SYSV} \%{mcall-aix: -D_CALL_AIX} %{mcall-aixdesc: -D_CALL_AIX -D_CALL_AIXDESC} \%{!mcall-sysv: %{!mcall-aix: %{!mcall-aixdesc: %(cpp_sysv_default) }}} \%{msoft-float: -D_SOFT_FLOAT} \%{!msoft-float: %{!mhard-float: \    %{mcpu=401: -D_SOFT_FLOAT} \    %{mcpu=403: -D_SOFT_FLOAT} \    %{mcpu=405: -D_SOFT_FLOAT} \    %{mcpu=ec603e: -D_SOFT_FLOAT} \    %{mcpu=801: -D_SOFT_FLOAT} \    %{mcpu=821: -D_SOFT_FLOAT} \    %{mcpu=823: -D_SOFT_FLOAT} \    %{mcpu=860: -D_SOFT_FLOAT} \    %{!mcpu*: %(cpp_float_default) }}}"/* Whether floating point is disabled by default.  */#define	CPP_FLOAT_DEFAULT_SPEC ""/* Whether 'long double' is 128 bits by default.  */#define	CPP_LONGDOUBLE_DEFAULT_SPEC ""#define	CPP_SYSV_DEFAULT_SPEC "-D_CALL_SYSV"#define CPP_ENDIAN_BIG_SPEC "-D_BIG_ENDIAN -D__BIG_ENDIAN__ -Amachine=bigendian"#define CPP_ENDIAN_LITTLE_SPEC "-D_LITTLE_ENDIAN -D__LITTLE_ENDIAN__ -Amachine=littleendian"#define	CPP_ENDIAN_SPEC \"%{mlittle: %(cpp_endian_little) } \%{mlittle-endian: %(cpp_endian_little) } \%{mbig: %(cpp_endian_big) } \%{mbig-endian: %(cpp_endian_big) } \%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \    %{mcall-freebsd: %(cpp_endian_big) } \    %{mcall-linux: %(cpp_endian_big) } \    %{mcall-gnu: %(cpp_endian_big) } \    %{mcall-netbsd: %(cpp_endian_big) } \    %{mcall-i960-old: %(cpp_endian_little) } \    %{mcall-aixdesc:  %(cpp_endian_big) } \    %{!mcall-linux: %{!mcall-gnu: %{!mcall-freebsd: %{!mcall-netbsd: %{!mcall-aixdesc: %(cpp_endian_default) }}}}}}}}}"#define	CPP_ENDIAN_DEFAULT_SPEC "%(cpp_endian_big)"/* Override rs6000.h definition.  */#undef	CPP_SPEC#define	CPP_SPEC "%{posix: -D_POSIX_SOURCE} %(cpp_sysv) %(cpp_endian) %(cpp_cpu) \%{mads: %(cpp_os_ads) } \%{myellowknife: %(cpp_os_yellowknife) } \%{mmvme: %(cpp_os_mvme) } \%{msim: %(cpp_os_sim) } \%{mcall-freebsd: %(cpp_os_freebsd) } \%{mcall-linux: %(cpp_os_linux) } \%{mcall-gnu: %(cpp_os_gnu) } \%{mcall-netbsd: %(cpp_os_netbsd) } \%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: %{!mcall-netbsd: %(cpp_os_default) }}}}}}}}"#define	CPP_OS_DEFAULT_SPEC ""/* Override svr4.h definition.  */#undef	STARTFILE_SPEC#define	STARTFILE_SPEC "\%{mads: %(startfile_ads) } \%{myellowknife: %(startfile_yellowknife) } \%{mmvme: %(startfile_mvme) } \%{msim: %(startfile_sim) } \%{mcall-freebsd: %(startfile_freebsd) } \%{mcall-linux: %(startfile_linux) } \%{mcall-gnu: %(startfile_gnu) } \%{mcall-netbsd: %(startfile_netbsd) } \%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: %{!mcall-netbsd: %(startfile_default) }}}}}}}}"#define	STARTFILE_DEFAULT_SPEC ""/* Override svr4.h definition.  */#undef	LIB_SPEC#define	LIB_SPEC "\%{mads: %(lib_ads) } \%{myellowknife: %(lib_yellowknife) } \%{mmvme: %(lib_mvme) } \%{msim: %(lib_sim) } \%{mcall-freebsd: %(lib_freebsd) } \%{mcall-linux: %(lib_linux) } \%{mcall-gnu: %(lib_gnu) } \%{mcall-netbsd: %(lib_netbsd) } \%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: %{!mcall-netbsd: %(lib_default) }}}}}}}}"#define LIB_DEFAULT_SPEC ""/* Override svr4.h definition.  */#undef	ENDFILE_SPEC#define	ENDFILE_SPEC "crtsavres.o%s \%{mads: %(endfile_ads)} \%{myellowknife: %(endfile_yellowknife)} \%{mmvme: %(endfile_mvme)} \%{msim: %(endfile_sim)} \%{mcall-freebsd: %(endfile_freebsd) } \%{mcall-linux: %(endfile_linux) } \%{mcall-gnu: %(endfile_gnu) } \%{mcall-netbsd: %(endfile_netbsd) } \%{mvxworks: %(endfile_vxworks) } \%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: %{!mcall-netbsd: %{!mvxworks: %(endfile_default) }}}}}}}}}"#define	ENDFILE_DEFAULT_SPEC ""/* Motorola ADS support.  */#define LIB_ADS_SPEC "--start-group -lads -lc --end-group"#define	STARTFILE_ADS_SPEC "ecrti.o%s crt0.o%s crtbegin.o%s"#define	ENDFILE_ADS_SPEC "crtend.o%s ecrtn.o%s"

⌨️ 快捷键说明

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