linux64.h (102780) | linux64.h (103445) |
---|---|
1/* Definitions of target machine for GNU compiler, 2 for 64 bit powerpc linux. 3 Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. 4 5This file is part of GNU CC. 6 7GNU CC is free software; you can redistribute it and/or modify 8it under the terms of the GNU General Public License as published by --- 23 unchanged lines hidden (view full) --- 32 (MASK_POWERPC | MASK_POWERPC64 | MASK_64BIT | MASK_NEW_MNEMONICS) 33 34#undef CPP_DEFAULT_SPEC 35#define CPP_DEFAULT_SPEC "-D_ARCH_PPC64" 36 37#undef ASM_DEFAULT_SPEC 38#define ASM_DEFAULT_SPEC "-mppc64" 39 | 1/* Definitions of target machine for GNU compiler, 2 for 64 bit powerpc linux. 3 Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. 4 5This file is part of GNU CC. 6 7GNU CC is free software; you can redistribute it and/or modify 8it under the terms of the GNU General Public License as published by --- 23 unchanged lines hidden (view full) --- 32 (MASK_POWERPC | MASK_POWERPC64 | MASK_64BIT | MASK_NEW_MNEMONICS) 33 34#undef CPP_DEFAULT_SPEC 35#define CPP_DEFAULT_SPEC "-D_ARCH_PPC64" 36 37#undef ASM_DEFAULT_SPEC 38#define ASM_DEFAULT_SPEC "-mppc64" 39 |
40#undef ASM_SPEC 41#define ASM_SPEC "%{.s: %{mregnames} %{mno-regnames}} \ 42%{.S: %{mregnames} %{mno-regnames}} \ 43%{mlittle} %{mlittle-endian} %{mbig} %{mbig-endian} \ 44%{v:-V} %{Qy:} %{!Qn:-Qy} -a64 %(asm_cpu) %{Wa,*:%*}" 45 |
|
40/* 64-bit PowerPC Linux always has a TOC. */ 41#undef TARGET_NO_TOC 42#define TARGET_NO_TOC 0 43#undef TARGET_TOC 44#define TARGET_TOC 1 45 46/* We use glibc _mcount for profiling. */ 47#define NO_PROFILE_COUNTERS 1 --- 12 unchanged lines hidden (view full) --- 60#endif 61 62/* We don't need to generate entries in .fixup. */ 63#undef RELOCATABLE_NEEDS_FIXUP 64 65#define USER_LABEL_PREFIX "" 66 67/* AIX word-aligns FP doubles but doubleword-aligns 64-bit ints. */ | 46/* 64-bit PowerPC Linux always has a TOC. */ 47#undef TARGET_NO_TOC 48#define TARGET_NO_TOC 0 49#undef TARGET_TOC 50#define TARGET_TOC 1 51 52/* We use glibc _mcount for profiling. */ 53#define NO_PROFILE_COUNTERS 1 --- 12 unchanged lines hidden (view full) --- 66#endif 67 68/* We don't need to generate entries in .fixup. */ 69#undef RELOCATABLE_NEEDS_FIXUP 70 71#define USER_LABEL_PREFIX "" 72 73/* AIX word-aligns FP doubles but doubleword-aligns 64-bit ints. */ |
74#undef ADJUST_FIELD_ALIGN |
|
68#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \ 69 (TYPE_MODE (TREE_CODE (TREE_TYPE (FIELD)) == ARRAY_TYPE \ 70 ? get_inner_array_type (FIELD) \ 71 : TREE_TYPE (FIELD)) == DFmode \ 72 ? MIN ((COMPUTED), 32) : (COMPUTED)) 73 74/* AIX increases natural record alignment to doubleword if the first 75 field is an FP double while the FP fields remain word aligned. */ --- 246 unchanged lines hidden (view full) --- 322 fputs ("-.", FILE); \ 323 assemble_name (FILE, \ 324 XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0));\ 325 putc ('\n', FILE); \ 326 ASM_OUTPUT_INTERNAL_LABEL (FILE, "LM", sym_lineno); \ 327 sym_lineno += 1; \ 328 } \ 329while (0) | 75#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \ 76 (TYPE_MODE (TREE_CODE (TREE_TYPE (FIELD)) == ARRAY_TYPE \ 77 ? get_inner_array_type (FIELD) \ 78 : TREE_TYPE (FIELD)) == DFmode \ 79 ? MIN ((COMPUTED), 32) : (COMPUTED)) 80 81/* AIX increases natural record alignment to doubleword if the first 82 field is an FP double while the FP fields remain word aligned. */ --- 246 unchanged lines hidden (view full) --- 329 fputs ("-.", FILE); \ 330 assemble_name (FILE, \ 331 XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0));\ 332 putc ('\n', FILE); \ 333 ASM_OUTPUT_INTERNAL_LABEL (FILE, "LM", sym_lineno); \ 334 sym_lineno += 1; \ 335 } \ 336while (0) |
337 338/* Similarly, we want the function code label here. */ 339#define DBX_OUTPUT_BRAC(FILE, NAME, BRAC) \ 340 do \ 341 { \ 342 const char *flab; \ 343 fprintf (FILE, "%s%d,0,0,", ASM_STABN_OP, BRAC); \ 344 assemble_name (FILE, NAME); \ 345 putc ('-', FILE); \ 346 if (current_function_func_begin_label != NULL_TREE) \ 347 flab = IDENTIFIER_POINTER (current_function_func_begin_label); \ 348 else \ 349 { \ 350 putc ('.', FILE); \ 351 flab = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0); \ 352 } \ 353 assemble_name (FILE, flab); \ 354 putc ('\n', FILE); \ 355 } \ 356 while (0) 357 358#define DBX_OUTPUT_LBRAC(FILE, NAME) DBX_OUTPUT_BRAC (FILE, NAME, N_LBRAC) 359#define DBX_OUTPUT_RBRAC(FILE, NAME) DBX_OUTPUT_BRAC (FILE, NAME, N_RBRAC) 360 361/* Another case where we want the dot name. */ 362#define DBX_OUTPUT_NFUN(FILE, LSCOPE, DECL) \ 363 do \ 364 { \ 365 fprintf (FILE, "%s\"\",%d,0,0,", ASM_STABS_OP, N_FUN); \ 366 assemble_name (FILE, LSCOPE); \ 367 fputs ("-.", FILE); \ 368 assemble_name (FILE, XSTR (XEXP (DECL_RTL (DECL), 0), 0)); \ 369 putc ('\n', FILE); \ 370 } \ 371 while (0) 372 373/* Override sysv4.h as these are ABI_V4 only. */ 374#undef ASM_OUTPUT_REG_PUSH 375#undef ASM_OUTPUT_REG_POP 376 377/* Select a format to encode pointers in exception handling data. CODE 378 is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is 379 true if the symbol may be affected by dynamic relocations. */ 380#undef ASM_PREFERRED_EH_DATA_FORMAT 381#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \ 382 (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_udata8) |
|