Mercurial > hg > CbC > CbC_gcc
diff gcc/config/spu/spu.h @ 55:77e2b8dfacca gcc-4.4.5
update it from 4.4.3 to 4.5.0
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2010 23:39:51 +0900 |
parents | 58ad6c70ea60 |
children | f6334be47118 |
line wrap: on
line diff
--- a/gcc/config/spu/spu.h Sun Feb 07 18:28:00 2010 +0900 +++ b/gcc/config/spu/spu.h Fri Feb 12 23:39:51 2010 +0900 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc. +/* Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -51,7 +51,7 @@ /* Default target_flags if no switches specified. */ #ifndef TARGET_DEFAULT #define TARGET_DEFAULT (MASK_ERROR_RELOC | MASK_SAFE_DMA | MASK_BRANCH_HINTS \ - | MASK_SAFE_HINTS) + | MASK_SAFE_HINTS | MASK_ADDRESS_SPACE_CONVERSION) #endif @@ -142,6 +142,8 @@ #define DEFAULT_SIGNED_CHAR 0 +#define STDINT_LONG32 0 + /* Register Basics */ @@ -270,7 +272,8 @@ #define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (LINK_REGISTER_REGNUM) -#define ARG_POINTER_CFA_OFFSET(FNDECL) (-STACK_POINTER_OFFSET) +#define ARG_POINTER_CFA_OFFSET(FNDECL) \ + (crtl->args.pretend_args_size - STACK_POINTER_OFFSET) /* Stack Checking */ @@ -312,16 +315,12 @@ /* Elimination */ -#define FRAME_POINTER_REQUIRED 0 - #define ELIMINABLE_REGS \ {{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \ {ARG_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}, \ {FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}, \ {FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}} -#define CAN_ELIMINATE(FROM,TO) 1 - #define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \ ((OFFSET) = spu_initial_elimination_offset((FROM),(TO))) @@ -395,9 +394,12 @@ /* Profiling */ -/* Nothing, for now. */ #define FUNCTION_PROFILER(FILE, LABELNO) \ - fprintf (FILE, "\t\n") + spu_function_profiler ((FILE), (LABELNO)); + +#define NO_PROFILE_COUNTERS 1 + +#define PROFILE_BEFORE_PROLOGUE 1 /* Trampolines */ @@ -405,10 +407,6 @@ #define TRAMPOLINE_SIZE (TARGET_LARGE_MEM ? 20 : 16) #define TRAMPOLINE_ALIGNMENT 128 - -#define INITIALIZE_TRAMPOLINE(TRAMP,FNADDR,CXT) \ - spu_initialize_trampoline(TRAMP,FNADDR,CXT) - /* Addressing Modes */ @@ -416,28 +414,6 @@ #define MAX_REGS_PER_ADDRESS 2 -#ifdef REG_OK_STRICT -# define REG_OK_STRICT_FLAG 1 -#else -# define REG_OK_STRICT_FLAG 0 -#endif - -#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, ADDR) \ - { if (spu_legitimate_address (MODE, X, REG_OK_STRICT_FLAG)) \ - goto ADDR; \ - } - -#define LEGITIMIZE_ADDRESS(X,OLDX,MODE,WIN) \ - { rtx result = spu_legitimize_address (X, OLDX, MODE); \ - if (result != NULL_RTX) \ - { \ - (X) = result; \ - goto WIN; \ - } \ - } - -#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR,LABEL) - #define LEGITIMATE_CONSTANT_P(X) spu_legitimate_constant_p(X) @@ -497,6 +473,17 @@ #define ASM_OUTPUT_LABELREF(FILE, NAME) \ asm_fprintf (FILE, "%U%s", default_strip_name_encoding (NAME)) +#define ASM_OUTPUT_SYMBOL_REF(FILE, X) \ + do \ + { \ + tree decl; \ + assemble_name (FILE, XSTR ((X), 0)); \ + if ((decl = SYMBOL_REF_DECL ((X))) != 0 \ + && TREE_CODE (decl) == VAR_DECL \ + && TYPE_ADDR_SPACE (TREE_TYPE (decl))) \ + fputs ("@ppu", FILE); \ + } while (0) + /* Instruction Output */ #define REGISTER_NAMES \ @@ -617,10 +604,12 @@ } \ } while (0) -/* These are set by the cmp patterns and used while expanding - conditional branches. */ -extern GTY(()) rtx spu_compare_op0; -extern GTY(()) rtx spu_compare_op1; + +/* Address spaces. */ +#define ADDR_SPACE_EA 1 + +/* Named address space keywords. */ +#define TARGET_ADDR_SPACE_KEYWORDS ADDR_SPACE_KEYWORD ("__ea", ADDR_SPACE_EA) /* Builtins. */ @@ -636,7 +625,7 @@ B_INTERNAL }; -struct spu_builtin_description GTY(()) +struct GTY(()) spu_builtin_description { int fcode; int icode;