OSDN Git Service

* config/i386/gmon-sol2.c (_mcleanup): Change format string
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 25 Apr 2010 08:11:46 +0000 (08:11 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 05:35:33 +0000 (14:35 +0900)
placeholder from 0x%x to %#x.
* config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
* config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
* config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
* config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
* config/i386/i386.c (ix86_target_string): Ditto.
(output_pic_addr_const): Ditto.
(print_operand): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158699 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/att.h
gcc/config/i386/i386-interix.h
gcc/config/i386/i386.c
gcc/config/i386/i386elf.h
gcc/config/i386/sysv4.h

index 4acca64..8dbef3d 100644 (file)
@@ -1,3 +1,15 @@
+2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/gmon-sol2.c (_mcleanup): Change format string
+       placeholder from 0x%x to %#x.
+       * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
+       * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
+       * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
+       * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
+       * config/i386/i386.c (ix86_target_string): Ditto.
+       (output_pic_addr_const): Ditto.
+       (print_operand): Ditto.
+
 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
 
        * combine.c (find_split_point): Add third argument.  Use it
 
 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
-       * toplev.c (general_init): Set default for
-       fdiagnostics-show-option.
+       * toplev.c (general_init): Set default for fdiagnostics-show-option.
        * opts.c (common_handle_option): Allow disabling it.
-       * common.opt (fdiagnostics-show-option): Add Var. Enabled by
-       default.
-       
+       * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
+
 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
 
        * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
        * tree-ssa-math-opts.c (execute_optimize_widening_mul,
        gate_optimize_widening_mul): New static functions.
        (pass_optimize_widening_mul): New.
-       * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New
-       case.
+       * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
        <case MULT_EXPR>: Remove support for widening multiplies.
        * tree.def (WIDEN_MULT_EXPR): Tweak comment.
        * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
index 2790778..5299e78 100644 (file)
@@ -46,7 +46,7 @@ do                                                            \
     { if (i%10 == 0) { if (i!=0) putc ('\n', (FILE));          \
                       fputs (ASM_BYTE, (FILE)); }              \
       else putc (',', (FILE));                                 \
-      fprintf ((FILE), "0x%x", ((PTR)[i++] & 0377)) ;}         \
+      fprintf ((FILE), "%#x", ((PTR)[i++] & 0377)) ;}          \
       putc ('\n', (FILE));                                     \
 } while (0)
 
index 060b82c..5d7bfac 100644 (file)
@@ -212,7 +212,7 @@ along with GCC; see the file COPYING3.  If not see
                fputs (ASM_BYTE, (FILE));                               \
              else                                                      \
                fputc (',', (FILE));                                    \
-             fprintf ((FILE), "0x%02x", *_ascii_bytes);                \
+             fprintf ((FILE), "%#02x", *_ascii_bytes);                 \
              bytes_in_chunk += 5;                                      \
            }                                                           \
        }                                                               \
index a54651d..3e887f8 100644 (file)
@@ -819,93 +819,6 @@ struct processor_costs amdfam10_cost = {
   1,                                    /* cond_not_taken_branch_cost.  */
 };
 
-struct processor_costs bdver1_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 (19),                  /* cost of a divide/mod for QI */
-   COSTS_N_INSNS (35),                  /*                          HI */
-   COSTS_N_INSNS (51),                  /*                          SI */
-   COSTS_N_INSNS (83),                  /*                          DI */
-   COSTS_N_INSNS (83)},                 /*                          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 storing fp registers
-                                          in SFmode, DFmode and XFmode */
-  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, 4, 3},                           /* cost of loading SSE registers
-                                          in SImode, DImode and TImode */
-  {4, 4, 5},                           /* cost of storing SSE registers
-                                          in SImode, DImode and TImode */
-  3,                                   /* MMX or SSE register to integer */
-                                       /* On K8
-                                           MOVD reg64, xmmreg  Double  FSTORE 4
-                                           MOVD reg32, xmmreg  Double  FSTORE 4
-                                          On AMDFAM10
-                                           MOVD reg64, xmmreg  Double  FADD 3
-                                                                1/1  1/1
-                                           MOVD reg32, xmmreg  Double  FADD 3
-                                                                1/1  1/1 */
-  64,                                  /* size of l1 cache.  */
-  1024,                                        /* size of l2 cache.  */
-  64,                                  /* size of prefetch block */
-  /* New AMD processors never drop prefetches; if they cannot be performed
-     immediately, they are queued.  We set number of simultaneous prefetches
-     to a large constant to reflect this (it probably is not a good idea not
-     to limit number of prefetches at all, as their execution also takes some
-     time).  */
-  100,                                 /* number of parallel prefetches */
-  2,                                   /* 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.  */
-
-  /*  BDVER1 has optimized REP instruction for medium sized blocks, but for
-      very small blocks it is better to use loop. For large blocks, libcall can
-      do nontemporary accesses and beat inline considerably.  */
-  {{libcall, {{6, loop}, {14, unrolled_loop}, {-1, rep_prefix_4_byte}}},
-   {libcall, {{16, loop}, {8192, rep_prefix_8_byte}, {-1, libcall}}}},
-  {{libcall, {{8, loop}, {24, unrolled_loop},
-             {2048, rep_prefix_4_byte}, {-1, libcall}}},
-   {libcall, {{48, unrolled_loop}, {8192, rep_prefix_8_byte}, {-1, libcall}}}},
-  4,                                    /* scalar_stmt_cost.  */
-  2,                                    /* scalar load_cost.  */
-  2,                                    /* scalar_store_cost.  */
-  6,                                    /* vec_stmt_cost.  */
-  0,                                    /* vec_to_scalar_cost.  */
-  2,                                    /* scalar_to_vec_cost.  */
-  2,                                    /* vec_align_load_cost.  */
-  2,                                    /* vec_unalign_load_cost.  */
-  2,                                    /* vec_store_cost.  */
-  2,                                    /* cond_taken_branch_cost.  */
-  1,                                    /* cond_not_taken_branch_cost.  */
-};
-
 static const
 struct processor_costs pentium4_cost = {
   COSTS_N_INSNS (1),                   /* cost of an add instruction */
@@ -1363,8 +1276,7 @@ const struct processor_costs *ix86_cost = &pentium_cost;
 #define m_ATHLON  (1<<PROCESSOR_ATHLON)
 #define m_ATHLON_K8  (m_K8 | m_ATHLON)
 #define m_AMDFAM10  (1<<PROCESSOR_AMDFAM10)
-#define m_BDVER1  (1<<PROCESSOR_BDVER1)
-#define m_AMD_MULTIPLE  (m_K8 | m_ATHLON | m_AMDFAM10 | m_BDVER1)
+#define m_AMD_MULTIPLE  (m_K8 | m_ATHLON | m_AMDFAM10)
 
 #define m_GENERIC32 (1<<PROCESSOR_GENERIC32)
 #define m_GENERIC64 (1<<PROCESSOR_GENERIC64)
@@ -1409,7 +1321,7 @@ static unsigned int initial_ix86_tune_features[X86_TUNE_LAST] = {
   ~m_386,
 
   /* X86_TUNE_USE_SAHF */
-  m_ATOM | m_PPRO | m_K6_GEODE | m_K8 | m_AMDFAM10 | m_BDVER1 | m_PENT4
+  m_ATOM | m_PPRO | m_K6_GEODE | m_K8 | m_AMDFAM10 | m_PENT4
   | m_NOCONA | m_CORE2 | m_GENERIC,
 
   /* X86_TUNE_MOVX: Enable to zero extend integer registers to avoid
@@ -1513,16 +1425,10 @@ static unsigned int initial_ix86_tune_features[X86_TUNE_LAST] = {
      while enabling it on K8 brings roughly 2.4% regression that can be partly
      masked by careful scheduling of moves.  */
   m_ATOM | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2 | m_GENERIC
-  | m_AMDFAM10 | m_BDVER1,
-
-  /* X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL */
-  m_AMDFAM10 | m_BDVER1,
+  | m_AMDFAM10,
 
-  /* X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL */
-  m_BDVER1,
-
-  /* X86_TUNE_SSE_PACKED_SINGLE_INSN_OPTIMAL */
-  m_BDVER1,
+  /* X86_TUNE_SSE_UNALIGNED_MOVE_OPTIMAL */
+  m_AMDFAM10,
 
   /* X86_TUNE_SSE_SPLIT_REGS: Set for machines where the type and dependencies
      are resolved on SSE register parts instead of whole registers, so we may
@@ -1555,7 +1461,7 @@ static unsigned int initial_ix86_tune_features[X86_TUNE_LAST] = {
   ~(m_AMD_MULTIPLE | m_GENERIC),
 
   /* X86_TUNE_INTER_UNIT_CONVERSIONS */
-  ~(m_AMDFAM10 | m_BDVER1),
+  ~(m_AMDFAM10),
 
   /* X86_TUNE_FOUR_JUMP_LIMIT: Some CPU cores are not able to predict more
      than 4 branch instructions in the 16 byte window.  */
@@ -1591,11 +1497,11 @@ static unsigned int initial_ix86_tune_features[X86_TUNE_LAST] = {
 
   /* X86_TUNE_SLOW_IMUL_IMM32_MEM: Imul of 32-bit constant and memory is
      vector path on AMD machines.  */
-  m_K8 | m_GENERIC64 | m_AMDFAM10 | m_BDVER1,
+  m_K8 | m_GENERIC64 | m_AMDFAM10,
 
   /* X86_TUNE_SLOW_IMUL_IMM8: Imul of 8-bit constant is vector path on AMD
      machines.  */
-  m_K8 | m_GENERIC64 | m_AMDFAM10 | m_BDVER1,
+  m_K8 | m_GENERIC64 | m_AMDFAM10,
 
   /* X86_TUNE_MOVE_M1_VIA_OR: On pentiums, it is faster to load -1 via OR
      than a MOV.  */
@@ -1621,7 +1527,7 @@ static unsigned int initial_ix86_tune_features[X86_TUNE_LAST] = {
   /* X86_TUNE_FUSE_CMP_AND_BRANCH: Fuse a compare or test instruction
      with a subsequent conditional jump instruction into a single
      compare-and-branch uop.  */
-  m_CORE2 | m_BDVER1,
+  m_CORE2,
 
   /* X86_TUNE_OPT_AGU: Optimize for Address Generation Unit. This flag
      will impact LEA instruction selection. */
@@ -1974,7 +1880,6 @@ static bool ext_80387_constants_init = 0;
 \f
 static struct machine_function * ix86_init_machine_status (void);
 static rtx ix86_function_value (const_tree, const_tree, bool);
-static bool ix86_function_value_regno_p (const unsigned int);
 static rtx ix86_static_chain (const_tree, bool);
 static int ix86_function_regparm (const_tree, const_tree);
 static void ix86_compute_frame_layout (struct ix86_frame *);
@@ -2161,7 +2066,6 @@ static const struct ptt processor_target_table[PROCESSOR_max] =
   {&generic32_cost, 16, 7, 16, 7, 16},
   {&generic64_cost, 16, 10, 16, 10, 16},
   {&amdfam10_cost, 32, 24, 32, 7, 32},
-  {&bdver1_cost, 32, 24, 32, 7, 32},
   {&atom_cost, 16, 7, 16, 7, 16}
 };
 
@@ -2188,8 +2092,7 @@ static const char *const cpu_names[TARGET_CPU_DEFAULT_max] =
   "athlon",
   "athlon-4",
   "k8",
-  "amdfam10",
-  "bdver1"
+  "amdfam10"
 };
 \f
 /* Implement TARGET_HANDLE_OPTION.  */
@@ -2625,7 +2528,7 @@ ix86_target_string (int isa, int flags, const char *arch, const char *tune,
   if (flags && add_nl_p)
     {
       opts[num++][0] = target_other;
-      sprintf (target_other, "(other flags: %#x)", flags);
+      sprintf (target_other, "(other flags: %#x)", isa);
     }
 
   /* Add -fpmath= option.  */
@@ -2847,11 +2750,6 @@ override_options (bool main_args_p)
       {"barcelona", PROCESSOR_AMDFAM10, CPU_AMDFAM10,
        PTA_64BIT | PTA_MMX | PTA_3DNOW | PTA_3DNOW_A | PTA_SSE
        | PTA_SSE2 | PTA_SSE3 | PTA_SSE4A | PTA_CX16 | PTA_ABM},
-      {"bdver1", PROCESSOR_BDVER1, CPU_BDVER1,
-       PTA_64BIT | PTA_MMX | PTA_3DNOW | PTA_3DNOW_A | PTA_SSE
-       | PTA_SSE2 | PTA_SSE3 | PTA_SSE4A | PTA_CX16 | PTA_ABM
-       | PTA_SSSE3 | PTA_SSE4_1 | PTA_SSE4_2 | PTA_AES 
-       | PTA_PCLMUL | PTA_AVX | PTA_FMA4 | PTA_XOP | PTA_LWP},
       {"generic32", PROCESSOR_GENERIC32, CPU_PENTIUMPRO,
        0 /* flags are only used for -march switch.  */ },
       {"generic64", PROCESSOR_GENERIC64, CPU_GENERIC64,
@@ -4390,10 +4288,6 @@ optimization_options (int level, int size ATTRIBUTE_UNUSED)
     flag_schedule_insns = 0;
 #endif
 
-  /* For -O2 and beyond, turn on -fzee for x86_64 target. */
-  if (level > 1 && TARGET_64BIT)
-    flag_zee = 1;
-
   if (TARGET_MACHO)
     /* The Darwin libraries never set errno, so we might as well
        avoid calling them when that's the only reason we would.  */
@@ -6437,8 +6331,8 @@ ix86_function_arg_boundary (enum machine_mode mode, tree type)
 
 /* Return true if N is a possible register number of function value.  */
 
-static bool
-ix86_function_value_regno_p (const unsigned int regno)
+bool
+ix86_function_value_regno_p (int regno)
 {
   switch (regno)
     {
@@ -7570,27 +7464,15 @@ standard_sse_constant_opcode (rtx insn, rtx x)
        case MODE_V4SF:
          return TARGET_AVX ? "vxorps\t%0, %0, %0" : "xorps\t%0, %0";
        case MODE_V2DF:
-         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
-           return TARGET_AVX ? "vxorps\t%0, %0, %0" : "xorps\t%0, %0";
-         else
-           return TARGET_AVX ? "vxorpd\t%0, %0, %0" : "xorpd\t%0, %0";     
+         return TARGET_AVX ? "vxorpd\t%0, %0, %0" : "xorpd\t%0, %0";
        case MODE_TI:
-         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
-           return TARGET_AVX ? "vxorps\t%0, %0, %0" : "xorps\t%0, %0";
-         else
-           return TARGET_AVX ? "vpxor\t%0, %0, %0" : "pxor\t%0, %0";
+         return TARGET_AVX ? "vpxor\t%0, %0, %0" : "pxor\t%0, %0";
        case MODE_V8SF:
          return "vxorps\t%x0, %x0, %x0";
        case MODE_V4DF:
-         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
-           return "vxorps\t%x0, %x0, %x0";
-         else
-           return "vxorpd\t%x0, %x0, %x0";
+         return "vxorpd\t%x0, %x0, %x0";
        case MODE_OI:
-         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
-           return "vxorps\t%x0, %x0, %x0";
-         else
-           return "vpxor\t%x0, %x0, %x0";
+         return "vpxor\t%x0, %x0, %x0";
        default:
          break;
        }
@@ -8128,7 +8010,6 @@ ix86_compute_frame_layout (struct ix86_frame *frame)
       && cfun->machine->use_fast_prologue_epilogue_nregs != frame->nregs)
     {
       int count = frame->nregs;
-      struct cgraph_node *node = cgraph_node (current_function_decl);
 
       cfun->machine->use_fast_prologue_epilogue_nregs = count;
       /* The fast prologue uses move instead of push to save registers.  This
@@ -8143,9 +8024,9 @@ ix86_compute_frame_layout (struct ix86_frame *frame)
         slow to use many of them.  */
       if (count)
        count = (count - 1) * FAST_PROLOGUE_INSN_COUNT;
-      if (node->frequency < NODE_FREQUENCY_NORMAL
+      if (cfun->function_frequency < FUNCTION_FREQUENCY_NORMAL
          || (flag_branch_probabilities
-             && node->frequency < NODE_FREQUENCY_HOT))
+             && cfun->function_frequency < FUNCTION_FREQUENCY_HOT))
         cfun->machine->use_fast_prologue_epilogue = false;
       else
         cfun->machine->use_fast_prologue_epilogue
@@ -10960,7 +10841,7 @@ output_pic_addr_const (FILE *file, rtx x, int code)
        {
          /* We can use %d if the number is <32 bits and positive.  */
          if (CONST_DOUBLE_HIGH (x) || CONST_DOUBLE_LOW (x) < 0)
-           fprintf (file, "0x%lx%08lx",
+           fprintf (file, "%#lx%08lx",
                     (unsigned long) CONST_DOUBLE_HIGH (x),
                     (unsigned long) CONST_DOUBLE_LOW (x));
          else
@@ -11131,10 +11012,7 @@ ix86_delegitimize_address (rtx x)
          || XINT (XEXP (x, 0), 1) != UNSPEC_GOTPCREL
          || !MEM_P (orig_x))
        return orig_x;
-      x = XVECEXP (XEXP (x, 0), 0, 0);
-      if (GET_MODE (orig_x) != Pmode)
-       return simplify_gen_subreg (GET_MODE (orig_x), x, Pmode, 0);
-      return x;
+      return XVECEXP (XEXP (x, 0), 0, 0);
     }
 
   if (GET_CODE (x) != PLUS
@@ -11201,8 +11079,6 @@ ix86_delegitimize_address (rtx x)
       else
        return orig_x;
     }
-  if (GET_MODE (orig_x) != Pmode && MEM_P (orig_x))
-    return simplify_gen_subreg (GET_MODE (orig_x), result, Pmode, 0);
   return result;
 }
 
@@ -11543,7 +11419,7 @@ get_some_local_dynamic_name (void)
     return cfun->machine->some_ld_name;
 
   for (insn = get_insns (); insn ; insn = NEXT_INSN (insn))
-    if (NONDEBUG_INSN_P (insn)
+    if (INSN_P (insn)
        && for_each_rtx (&PATTERN (insn), get_some_local_dynamic_name_1, 0))
       return cfun->machine->some_ld_name;
 
@@ -12056,8 +11932,10 @@ print_operand (FILE *file, rtx x, int code)
          return;
 
        case ';':
-#if TARGET_MACHO || !HAVE_AS_IX86_REP_LOCK_PREFIX
-         fputs (";", file);
+#if TARGET_MACHO
+         fputs (" ; ", file);
+#else
+         putc (' ', file);
 #endif
          return;
 
@@ -12127,7 +12005,7 @@ print_operand (FILE *file, rtx x, int code)
 
       if (ASSEMBLER_DIALECT == ASM_ATT)
        putc ('$', file);
-      fprintf (file, "0x%08lx", (long unsigned int) l);
+      fprintf (file, "%#08lx", (long unsigned int) l);
     }
 
   /* These float cases don't actually occur as immediate operands.  */
@@ -13344,14 +13222,6 @@ ix86_expand_vector_move_misalign (enum machine_mode mode, rtx operands[])
          switch (GET_MODE_SIZE (mode))
            {
            case 16:
-             /*  If we're optimizing for size, movups is the smallest.  */
-             if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
-               {
-                 op0 = gen_lowpart (V4SFmode, op0);
-                 op1 = gen_lowpart (V4SFmode, op1);
-                 emit_insn (gen_avx_movups (op0, op1));
-                 return;
-               }
              op0 = gen_lowpart (V16QImode, op0);
              op1 = gen_lowpart (V16QImode, op1);
              emit_insn (gen_avx_movdqu (op0, op1));
@@ -13378,13 +13248,6 @@ ix86_expand_vector_move_misalign (enum machine_mode mode, rtx operands[])
              emit_insn (gen_avx_movups256 (op0, op1));
              break;
            case V2DFmode:
-             if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
-               {
-                 op0 = gen_lowpart (V4SFmode, op0);
-                 op1 = gen_lowpart (V4SFmode, op1);
-                 emit_insn (gen_avx_movups (op0, op1));
-                 return;
-               }
              emit_insn (gen_avx_movupd (op0, op1));
              break;
            case V4DFmode:
@@ -13405,8 +13268,7 @@ ix86_expand_vector_move_misalign (enum machine_mode mode, rtx operands[])
   if (MEM_P (op1))
     {
       /* If we're optimizing for size, movups is the smallest.  */
-      if (optimize_insn_for_size_p () 
-         || TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+      if (optimize_insn_for_size_p ())
        {
          op0 = gen_lowpart (V4SFmode, op0);
          op1 = gen_lowpart (V4SFmode, op1);
@@ -13429,13 +13291,13 @@ ix86_expand_vector_move_misalign (enum machine_mode mode, rtx operands[])
         {
           rtx zero;
 
-         if (TARGET_SSE_UNALIGNED_LOAD_OPTIMAL)
-           {
-             op0 = gen_lowpart (V2DFmode, op0);
-             op1 = gen_lowpart (V2DFmode, op1);
-             emit_insn (gen_sse2_movupd (op0, op1));
-             return;
-           }
+          if (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL)
+            {
+              op0 = gen_lowpart (V2DFmode, op0);
+              op1 = gen_lowpart (V2DFmode, op1);
+              emit_insn (gen_sse2_movupd (op0, op1));
+              return;
+            }
 
          /* When SSE registers are split into halves, we can avoid
             writing to the top half twice.  */
@@ -13464,12 +13326,12 @@ ix86_expand_vector_move_misalign (enum machine_mode mode, rtx operands[])
        }
       else
         {
-         if (TARGET_SSE_UNALIGNED_LOAD_OPTIMAL)
-           {
-             op0 = gen_lowpart (V4SFmode, op0);
-             op1 = gen_lowpart (V4SFmode, op1);
-             emit_insn (gen_sse_movups (op0, op1));
-             return;
+          if (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL)
+            {
+              op0 = gen_lowpart (V4SFmode, op0);
+              op1 = gen_lowpart (V4SFmode, op1);
+              emit_insn (gen_sse_movups (op0, op1));
+              return;
             }
 
          if (TARGET_SSE_PARTIAL_REG_DEPENDENCY)
@@ -13488,8 +13350,7 @@ ix86_expand_vector_move_misalign (enum machine_mode mode, rtx operands[])
   else if (MEM_P (op0))
     {
       /* If we're optimizing for size, movups is the smallest.  */
-      if (optimize_insn_for_size_p ()
-         || TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+      if (optimize_insn_for_size_p ())
        {
          op0 = gen_lowpart (V4SFmode, op0);
          op1 = gen_lowpart (V4SFmode, op1);
@@ -13510,37 +13371,19 @@ ix86_expand_vector_move_misalign (enum machine_mode mode, rtx operands[])
 
       if (TARGET_SSE2 && mode == V2DFmode)
        {
-         if (TARGET_SSE_UNALIGNED_STORE_OPTIMAL)
-           {
-             op0 = gen_lowpart (V2DFmode, op0);
-             op1 = gen_lowpart (V2DFmode, op1);
-             emit_insn (gen_sse2_movupd (op0, op1));         
-           }
-         else
-           {
-             m = adjust_address (op0, DFmode, 0);
-             emit_insn (gen_sse2_storelpd (m, op1));
-             m = adjust_address (op0, DFmode, 8);
-             emit_insn (gen_sse2_storehpd (m, op1));
-           }
+         m = adjust_address (op0, DFmode, 0);
+         emit_insn (gen_sse2_storelpd (m, op1));
+         m = adjust_address (op0, DFmode, 8);
+         emit_insn (gen_sse2_storehpd (m, op1));
        }
       else
        {
          if (mode != V4SFmode)
            op1 = gen_lowpart (V4SFmode, op1);
-
-         if (TARGET_SSE_UNALIGNED_STORE_OPTIMAL)
-           {
-             op0 = gen_lowpart (V4SFmode, op0);
-             emit_insn (gen_sse_movups (op0, op1));          
-           }
-         else
-           {
-             m = adjust_address (op0, V2SFmode, 0);
-             emit_insn (gen_sse_storelps (m, op1));
-             m = adjust_address (op0, V2SFmode, 8);
-             emit_insn (gen_sse_storehps (m, op1));
-           }
+         m = adjust_address (op0, V2SFmode, 0);
+         emit_insn (gen_sse_storelps (m, op1));
+         m = adjust_address (op0, V2SFmode, 8);
+         emit_insn (gen_sse_storehps (m, op1));
        }
     }
   else
@@ -13822,7 +13665,7 @@ distance_non_agu_define (unsigned int regno1, unsigned int regno2,
       rtx prev = PREV_INSN (insn);
       while (prev && distance < LEA_SEARCH_THRESHOLD)
        {
-         if (NONDEBUG_INSN_P (prev))
+         if (INSN_P (prev))
            {
              distance++;
               for (def_rec = DF_INSN_DEFS (prev); *def_rec; def_rec++)
@@ -13862,7 +13705,7 @@ distance_non_agu_define (unsigned int regno1, unsigned int regno2,
                 && prev != insn
                 && distance < LEA_SEARCH_THRESHOLD)
            {
-             if (NONDEBUG_INSN_P (prev))
+             if (INSN_P (prev))
                {
                  distance++;
                  for (def_rec = DF_INSN_DEFS (prev); *def_rec; def_rec++)
@@ -13908,7 +13751,7 @@ distance_agu_use (unsigned int regno0, rtx insn)
       rtx next = NEXT_INSN (insn);
       while (next && distance < LEA_SEARCH_THRESHOLD)
        {
-         if (NONDEBUG_INSN_P (next))
+         if (INSN_P (next))
            {
              distance++;
 
@@ -13957,7 +13800,7 @@ distance_agu_use (unsigned int regno0, rtx insn)
                 && next != insn
                 && distance < LEA_SEARCH_THRESHOLD)
            {
-             if (NONDEBUG_INSN_P (next))
+             if (INSN_P (next))
                {
                  distance++;
 
@@ -19860,7 +19703,6 @@ ix86_issue_rate (void)
     case PROCESSOR_NOCONA:
     case PROCESSOR_GENERIC32:
     case PROCESSOR_GENERIC64:
-    case PROCESSOR_BDVER1:
       return 3;
 
     case PROCESSOR_CORE2:
@@ -20050,7 +19892,6 @@ ix86_adjust_cost (rtx insn, rtx link, rtx dep_insn, int cost)
     case PROCESSOR_ATHLON:
     case PROCESSOR_K8:
     case PROCESSOR_AMDFAM10:
-    case PROCESSOR_BDVER1:
     case PROCESSOR_ATOM:
     case PROCESSOR_GENERIC32:
     case PROCESSOR_GENERIC64:
@@ -26865,7 +26706,7 @@ ix86_pad_returns (void)
            replace = true;
          /* Empty functions get branch mispredict even when the jump destination
             is not visible to us.  */
-         if (!prev && !optimize_function_for_size_p (cfun))
+         if (!prev && cfun->function_frequency > FUNCTION_FREQUENCY_UNLIKELY_EXECUTED)
            replace = true;
        }
       if (replace)
@@ -30814,9 +30655,6 @@ ix86_enum_va_list (int idx, const char **pname, tree *ptree)
 #undef TARGET_FUNCTION_VALUE
 #define TARGET_FUNCTION_VALUE ix86_function_value
 
-#undef TARGET_FUNCTION_VALUE_REGNO_P
-#define TARGET_FUNCTION_VALUE_REGNO_P ix86_function_value_regno_p
-
 #undef TARGET_SECONDARY_RELOAD
 #define TARGET_SECONDARY_RELOAD ix86_secondary_reload
 
index c3f930a..a550243 100644 (file)
@@ -88,7 +88,7 @@ along with GCC; see the file COPYING3.  If not see
                fputs (ASM_BYTE, (FILE));                               \
              else                                                      \
                fputc (',', (FILE));                                    \
-             fprintf ((FILE), "0x%02x", *_ascii_bytes);                        \
+             fprintf ((FILE), "%#02x", *_ascii_bytes);                 \
              bytes_in_chunk += 5;                                      \
            }                                                           \
        }                                                               \
index 63c0cbc..1dc0a36 100644 (file)
@@ -80,7 +80,7 @@ along with GCC; see the file COPYING3.  If not see
                fputs (ASM_BYTE, (FILE));                               \
              else                                                      \
                fputc (',', (FILE));                                    \
-             fprintf ((FILE), "0x%02x", *_ascii_bytes);                \
+             fprintf ((FILE), "%#02x", *_ascii_bytes);                 \
              bytes_in_chunk += 5;                                      \
            }                                                           \
        }                                                               \