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

📄 i386.c

📁 Mac OS X 10.4.9 for x86 Source Code gcc 实现源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
  6,					/* MOVE_RATIO */  2,					/* cost for loading QImode using movzbl */  {4, 4, 4},				/* cost of loading integer registers					   in QImode, HImode and SImode.					   Relative to reg-reg move (2).  */  {2, 2, 2},				/* cost of storing integer registers */  2,					/* cost of reg,reg fld/fst */  {2, 2, 6},				/* cost of loading fp registers					   in SFmode, DFmode and XFmode */  {4, 4, 6},				/* cost of loading integer registers */  2,					/* cost of moving MMX register */  {2, 2},				/* cost of loading MMX registers					   in SImode and DImode */  {2, 2},				/* cost of storing MMX registers					   in SImode and DImode */  2,					/* cost of moving SSE register */  {2, 2, 8},				/* cost of loading SSE registers					   in SImode, DImode and TImode */  {2, 2, 8},				/* cost of storing SSE registers					   in SImode, DImode and TImode */  3,					/* MMX or SSE register to integer */  32,					/* size of prefetch block */  6,					/* number of parallel prefetches */  2,					/* Branch cost */  COSTS_N_INSNS (3),			/* cost of FADD and FSUB insns.  */  COSTS_N_INSNS (5),			/* cost of FMUL instruction.  */  COSTS_N_INSNS (56),			/* cost of FDIV instruction.  */  COSTS_N_INSNS (2),			/* cost of FABS instruction.  */  COSTS_N_INSNS (2),			/* cost of FCHS instruction.  */  COSTS_N_INSNS (56),			/* cost of FSQRT instruction.  */};static conststruct processor_costs k6_cost = {  COSTS_N_INSNS (1),			/* cost of an add instruction */  COSTS_N_INSNS (2),			/* cost of a lea instruction */  COSTS_N_INSNS (1),			/* variable shift costs */  COSTS_N_INSNS (1),			/* constant shift costs */  {COSTS_N_INSNS (3),			/* cost of starting multiply for QI */   COSTS_N_INSNS (3),			/*                               HI */   COSTS_N_INSNS (3),			/*                               SI */   COSTS_N_INSNS (3),			/*                               DI */   COSTS_N_INSNS (3)},			/*                               other */  0,					/* cost of multiply per each bit set */  {COSTS_N_INSNS (18),			/* cost of a divide/mod for QI */   COSTS_N_INSNS (18),			/*                          HI */   COSTS_N_INSNS (18),			/*                          SI */   COSTS_N_INSNS (18),			/*                          DI */   COSTS_N_INSNS (18)},			/*                          other */  COSTS_N_INSNS (2),			/* cost of movsx */  COSTS_N_INSNS (2),			/* cost of movzx */  8,					/* "large" insn */  4,					/* MOVE_RATIO */  3,					/* cost for loading QImode using movzbl */  {4, 5, 4},				/* cost of loading integer registers					   in QImode, HImode and SImode.					   Relative to reg-reg move (2).  */  {2, 3, 2},				/* cost of storing integer registers */  4,					/* cost of reg,reg fld/fst */  {6, 6, 6},				/* cost of loading fp registers					   in SFmode, DFmode and XFmode */  {4, 4, 4},				/* cost of loading integer registers */  2,					/* cost of moving MMX register */  {2, 2},				/* cost of loading MMX registers					   in SImode and DImode */  {2, 2},				/* cost of storing MMX registers					   in SImode and DImode */  2,					/* cost of moving SSE register */  {2, 2, 8},				/* cost of loading SSE registers					   in SImode, DImode and TImode */  {2, 2, 8},				/* cost of storing SSE registers					   in SImode, DImode and TImode */  6,					/* MMX or SSE register to integer */  32,					/* size of prefetch block */  1,					/* number of parallel prefetches */  1,					/* Branch cost */  COSTS_N_INSNS (2),			/* cost of FADD and FSUB insns.  */  COSTS_N_INSNS (2),			/* cost of FMUL instruction.  */  COSTS_N_INSNS (56),			/* cost of FDIV instruction.  */  COSTS_N_INSNS (2),			/* cost of FABS instruction.  */  COSTS_N_INSNS (2),			/* cost of FCHS instruction.  */  COSTS_N_INSNS (56),			/* cost of FSQRT instruction.  */};static conststruct processor_costs athlon_cost = {  COSTS_N_INSNS (1),			/* cost of an add instruction */  COSTS_N_INSNS (2),			/* cost of a lea instruction */  COSTS_N_INSNS (1),			/* variable shift costs */  COSTS_N_INSNS (1),			/* constant shift costs */  {COSTS_N_INSNS (5),			/* cost of starting multiply for QI */   COSTS_N_INSNS (5),			/*                               HI */   COSTS_N_INSNS (5),			/*                               SI */   COSTS_N_INSNS (5),			/*                               DI */   COSTS_N_INSNS (5)},			/*                               other */  0,					/* cost of multiply per each bit set */  {COSTS_N_INSNS (18),			/* cost of a divide/mod for QI */   COSTS_N_INSNS (26),			/*                          HI */   COSTS_N_INSNS (42),			/*                          SI */   COSTS_N_INSNS (74),			/*                          DI */   COSTS_N_INSNS (74)},			/*                          other */  COSTS_N_INSNS (1),			/* cost of movsx */  COSTS_N_INSNS (1),			/* cost of movzx */  8,					/* "large" insn */  9,					/* MOVE_RATIO */  4,					/* cost for loading QImode using movzbl */  {3, 4, 3},				/* cost of loading integer registers					   in QImode, HImode and SImode.					   Relative to reg-reg move (2).  */  {3, 4, 3},				/* cost of storing integer registers */  4,					/* cost of reg,reg fld/fst */  {4, 4, 12},				/* cost of loading fp registers					   in SFmode, DFmode and XFmode */  {6, 6, 8},				/* cost of loading integer registers */  2,					/* cost of moving MMX register */  {4, 4},				/* cost of loading MMX registers					   in SImode and DImode */  {4, 4},				/* cost of storing MMX registers					   in SImode and DImode */  2,					/* cost of moving SSE register */  {4, 4, 6},				/* cost of loading SSE registers					   in SImode, DImode and TImode */  {4, 4, 5},				/* cost of storing SSE registers					   in SImode, DImode and TImode */  5,					/* MMX or SSE register to integer */  64,					/* size of prefetch block */  6,					/* number of parallel prefetches */  5,					/* Branch cost */  COSTS_N_INSNS (4),			/* cost of FADD and FSUB insns.  */  COSTS_N_INSNS (4),			/* cost of FMUL instruction.  */  COSTS_N_INSNS (24),			/* cost of FDIV instruction.  */  COSTS_N_INSNS (2),			/* cost of FABS instruction.  */  COSTS_N_INSNS (2),			/* cost of FCHS instruction.  */  COSTS_N_INSNS (35),			/* cost of FSQRT instruction.  */};static conststruct processor_costs k8_cost = {  COSTS_N_INSNS (1),			/* cost of an add instruction */  COSTS_N_INSNS (2),			/* cost of a lea instruction */  COSTS_N_INSNS (1),			/* variable shift costs */  COSTS_N_INSNS (1),			/* constant shift costs */  {COSTS_N_INSNS (3),			/* cost of starting multiply for QI */   COSTS_N_INSNS (4),			/*                               HI */   COSTS_N_INSNS (3),			/*                               SI */   COSTS_N_INSNS (4),			/*                               DI */   COSTS_N_INSNS (5)},			/*                               other */  0,					/* cost of multiply per each bit set */  {COSTS_N_INSNS (18),			/* cost of a divide/mod for QI */   COSTS_N_INSNS (26),			/*                          HI */   COSTS_N_INSNS (42),			/*                          SI */   COSTS_N_INSNS (74),			/*                          DI */   COSTS_N_INSNS (74)},			/*                          other */  COSTS_N_INSNS (1),			/* cost of movsx */  COSTS_N_INSNS (1),			/* cost of movzx */  8,					/* "large" insn */  9,					/* MOVE_RATIO */  4,					/* cost for loading QImode using movzbl */  {3, 4, 3},				/* cost of loading integer registers					   in QImode, HImode and SImode.					   Relative to reg-reg move (2).  */  {3, 4, 3},				/* cost of storing integer registers */  4,					/* cost of reg,reg fld/fst */  {4, 4, 12},				/* cost of loading fp registers					   in SFmode, DFmode and XFmode */  {6, 6, 8},				/* cost of loading integer registers */  2,					/* cost of moving MMX register */  {3, 3},				/* cost of loading MMX registers					   in SImode and DImode */  {4, 4},				/* cost of storing MMX registers					   in SImode and DImode */  2,					/* cost of moving SSE register */  {4, 3, 6},				/* cost of loading SSE registers					   in SImode, DImode and TImode */  {4, 4, 5},				/* cost of storing SSE registers					   in SImode, DImode and TImode */  5,					/* MMX or SSE register to integer */  64,					/* size of prefetch block */  6,					/* number of parallel prefetches */  5,					/* Branch cost */  COSTS_N_INSNS (4),			/* cost of FADD and FSUB insns.  */  COSTS_N_INSNS (4),			/* cost of FMUL instruction.  */  COSTS_N_INSNS (19),			/* cost of FDIV instruction.  */  COSTS_N_INSNS (2),			/* cost of FABS instruction.  */  COSTS_N_INSNS (2),			/* cost of FCHS instruction.  */  COSTS_N_INSNS (35),			/* cost of FSQRT instruction.  */};static conststruct processor_costs pentium4_cost = {  COSTS_N_INSNS (1),			/* cost of an add instruction */  COSTS_N_INSNS (3),			/* cost of a lea instruction */  COSTS_N_INSNS (4),			/* variable shift costs */  COSTS_N_INSNS (4),			/* constant shift costs */  {COSTS_N_INSNS (15),			/* cost of starting multiply for QI */   COSTS_N_INSNS (15),			/*                               HI */   COSTS_N_INSNS (15),			/*                               SI */   COSTS_N_INSNS (15),			/*                               DI */   COSTS_N_INSNS (15)},			/*                               other */  0,					/* cost of multiply per each bit set */  {COSTS_N_INSNS (56),			/* cost of a divide/mod for QI */   COSTS_N_INSNS (56),			/*                          HI */   COSTS_N_INSNS (56),			/*                          SI */   COSTS_N_INSNS (56),			/*                          DI */   COSTS_N_INSNS (56)},			/*                          other */  COSTS_N_INSNS (1),			/* cost of movsx */  COSTS_N_INSNS (1),			/* cost of movzx */  16,					/* "large" insn */  6,					/* MOVE_RATIO */  2,					/* cost for loading QImode using movzbl */  {4, 5, 4},				/* cost of loading integer registers					   in QImode, HImode and SImode.					   Relative to reg-reg move (2).  */  {2, 3, 2},				/* cost of storing integer registers */  2,					/* cost of reg,reg fld/fst */  {2, 2, 6},				/* cost of loading fp registers					   in SFmode, DFmode and XFmode */  {4, 4, 6},				/* cost of loading integer registers */  2,					/* cost of moving MMX register */  {2, 2},				/* cost of loading MMX registers					   in SImode and DImode */  {2, 2},				/* cost of storing MMX registers					   in SImode and DImode */  12,					/* cost of moving SSE register */  {12, 12, 12},				/* cost of loading SSE registers					   in SImode, DImode and TImode */  {2, 2, 8},				/* cost of storing SSE registers					   in SImode, DImode and TImode */  10,					/* MMX or SSE register to integer */  64,					/* size of prefetch block */  6,					/* number of parallel prefetches */  2,					/* Branch cost */  COSTS_N_INSNS (5),			/* cost of FADD and FSUB insns.  */  COSTS_N_INSNS (7),			/* cost of FMUL instruction.  */  COSTS_N_INSNS (43),			/* cost of FDIV instruction.  */  COSTS_N_INSNS (2),			/* cost of FABS instruction.  */  COSTS_N_INSNS (2),			/* cost of FCHS instruction.  */  COSTS_N_INSNS (43),			/* cost of FSQRT instruction.  */};static conststruct processor_costs nocona_cost = {  COSTS_N_INSNS (1),			/* cost of an add instruction */  COSTS_N_INSNS (1),			/* cost of a lea instruction */  COSTS_N_INSNS (1),			/* variable shift costs */  COSTS_N_INSNS (1),			/* constant shift costs */  {COSTS_N_INSNS (10),			/* cost of starting multiply for QI */   COSTS_N_INSNS (10),			/*                               HI */   COSTS_N_INSNS (10),			/*                               SI */   COSTS_N_INSNS (10),			/*                               DI */   COSTS_N_INSNS (10)},			/*                               other */  0,					/* cost of multiply per each bit set */  {COSTS_N_INSNS (66),			/* cost of a divide/mod for QI */   COSTS_N_INSNS (66),			/*                          HI */   COSTS_N_INSNS (66),			/*                          SI */   COSTS_N_INSNS (66),			/*                          DI */   COSTS_N_INSNS (66)},			/*                          other */  COSTS_N_INSNS (1),			/* cost of movsx */  COSTS_N_INSNS (1),			/* cost of movzx */  16,					/* "large" insn */  /* APPLE LOCAL 4217585 FSF deferred until stage 1 */  17,	   				/* MOVE_RATIO */  4,					/* cost for loading QImode using movzbl */  {4, 4, 4},				/* cost of loading integer registers					   in QImode, HImode and SImode.					   Relative to reg-reg move (2).  */  {4, 4, 4},				/* cost of storing integer registers */  3,					/* cost of reg,reg fld/fst */  {12, 12, 12},				/* cost of loading fp registers					   in SFmode, DFmode and XFmode */  {4, 4, 4},				/* cost of loading integer registers */  6,					/* cost of moving MMX register */  {12, 12},				/* cost of loading MMX registers					   in SImode and DImode */  {12, 12},				/* cost of storing MMX registers					   in SImode and DImode */  6,					/* cost of moving SSE register */  {12, 12, 12},				/* cost of loading SSE registers					   in SImode, DImode and TImode */  {12, 12, 12},				/* cost of storing SSE registers					   in SImode, DImode and TImode */  8,					/* MMX or SSE register to integer */  128,					/* size of prefetch block */  8,					/* number of parallel prefetches */  1,					/* Branch cost */  COSTS_N_INSNS (6),			/* cost of FADD and FSUB insns.  */  COSTS_N_INSNS (8),			/* cost of FMUL instruction.  */  COSTS_N_INSNS (40),			/* cost of FDIV instruction.  */  COSTS_N_INSNS (3),			/* cost of FABS instruction.  */  COSTS_N_INSNS (3),			/* cost of FCHS instruction.  */  COSTS_N_INSNS (44),			/* cost of FSQRT instruction.  */};/* Generic64 should produce code tuned for Nocona and K8.  */static conststruct processor_costs generic64_cost = {  COSTS_N_INSNS (1),			/* cost of an add instruction */  /* On all chips taken into consideration lea is 2 cycles and more.  With     this cost however our current implementation of synth_mult results in     use of unnecesary temporary registers causing regression on several     SPECfp benchmarks.  */  COSTS_N_INSNS (1) + 1,		/* cost of a lea instruction */  COSTS_N_INSNS (1),			/* variable shift costs */  COSTS_N_INSNS (1),			/* constant shift costs */  {COSTS_N_INSNS (3),			/* cost of starting multiply for QI */   COSTS_N_INSNS (4),			/*                               HI */

⌨️ 快捷键说明

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