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

📄 darwin.h

📁 gcc-you can use this code to learn something about gcc, and inquire further into linux,
💻 H
字号:
/* Target definitions for x86 running Darwin.   Copyright (C) 2001, 2002 Free Software Foundation, Inc.   Contributed by Apple Computer Inc.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.  *//* Enable Mach-O bits in generic x86 code.  */#undef TARGET_MACHO#define TARGET_MACHO 1#define TARGET_VERSION fprintf (stderr, " (i386 Darwin)");#define TARGET_OS_CPP_BUILTINS()                \  do                                            \    {                                           \      builtin_define ("__i386__");              \      builtin_define ("__LITTLE_ENDIAN__");     \      builtin_define ("__MACH__");              \      builtin_define ("__APPLE__");             \    }                                           \  while (0)/* We want -fPIC by default, unless we're using -static to compile for   the kernel or some such.  */#undef CC1_SPEC#define CC1_SPEC "%{!static:-fPIC}"/* The Darwin assembler mostly follows AT&T syntax.  */#undef ASSEMBLER_DIALECT#define ASSEMBLER_DIALECT ASM_ATT/* Define macro used to output shift-double opcodes when the shift   count is in %cl.  Some assemblers require %cl as an argument;   some don't.  This macro controls what to do: by default, don't   print %cl.  */#define SHIFT_DOUBLE_OMITS_COUNT 0/* Define the syntax of pseudo-ops, labels and comments.  *//* String containing the assembler's comment-starter.  */#define ASM_COMMENT_START "#"/* By default, target has a 80387, uses IEEE compatible arithmetic,   and returns float values in the 387.  */#define TARGET_SUBTARGET_DEFAULT (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS)/* TARGET_DEEP_BRANCH_PREDICTION is incompatible with Mach-O PIC.  */#undef TARGET_DEEP_BRANCH_PREDICTION#define TARGET_DEEP_BRANCH_PREDICTION   0/* Define the syntax of pseudo-ops, labels and comments.  */#define LPREFIX "L"/* Assembler pseudos to introduce constants of various size.  */#define ASM_BYTE_OP "\t.byte\t"#define ASM_SHORT "\t.word\t"#define ASM_LONG "\t.long\t"/* Darwin as doesn't do ".quad".  */#undef ASM_OUTPUT_ALIGN#define ASM_OUTPUT_ALIGN(FILE,LOG)	\ do { if ((LOG) != 0)			\        {				\          if (in_text_section ())	\            fprintf (FILE, "\t%s %d,0x90\n", ALIGN_ASM_OP, (LOG)); \          else				\            fprintf (FILE, "\t%s %d\n", ALIGN_ASM_OP, (LOG)); \        }				\    } while (0)/* This says how to output an assembler line   to define a global common symbol.  */#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED)  \( fputs (".comm ", (FILE)),			\  assemble_name ((FILE), (NAME)),		\  fprintf ((FILE), ",%u\n", (ROUNDED)))/* This says how to output an assembler line   to define a local common symbol.  */#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED)  \( fputs (".lcomm ", (FILE)),			\  assemble_name ((FILE), (NAME)),		\  fprintf ((FILE), ",%u\n", (ROUNDED)))/* Darwin profiling -- call mcount.  */#undef FUNCTION_PROFILER#define FUNCTION_PROFILER(FILE, LABELNO)				\    do {								\      if (MACHOPIC_INDIRECT)						\	{								\	  const char *name = machopic_stub_name ("*mcount");		\	  fprintf (FILE, "\tcall %s\n", name+1);  /*  skip '&'  */	\	  machopic_validate_stub_or_non_lazy_ptr (name, /*stub:*/1);	\	}								\      else fprintf (FILE, "\tcall mcount\n");				\    } while (0)

⌨️ 快捷键说明

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