OSDN Git Service

* config/rs6000/rs6000.c (print_operand): Rearrange addends in
authoramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 31 Jan 2011 00:44:10 +0000 (00:44 +0000)
committeramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 31 Jan 2011 00:44:10 +0000 (00:44 +0000)
toc relative expressions as we do in print_operand_address.

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

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 33f73a8..cc5d34b 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-31  Alan Modra  <amodra@gmail.com>
+
+       * config/rs6000/rs6000.c (print_operand): Rearrange addends in
+       toc relative expressions as we do in print_operand_address.
+
 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
 
        * doc/extend.texi: Follow spelling conventions.
@@ -9,7 +14,7 @@
        * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
        ia64*-*-hpux*): Use hpux11.opt.
 
-2011-01-30  Jonathan Yong <jon_y@users.sourceforge.net> 
+2011-01-30  Jonathan Yong <jon_y@users.sourceforge.net>
 
        * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
        to tmake_file.
@@ -25,7 +30,7 @@
        Motorola 68HC11/68HC12 downloads.
 
 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
-       
+
        * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
        Drepper's paper.
 
 2011-01-26  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/47190
-        * cgraphunit.c (process_common_attributes): New function.
-        (process_function_and_variable_attributes): Use it.
+       * cgraphunit.c (process_common_attributes): New function.
+       (process_function_and_variable_attributes): Use it.
 
 2011-01-26  Richard Guenther  <rguenther@suse.de>
 
 
        PR c++/47291
        * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
-       (gen_scheduled_generic_parms_dies): New functions.
-       (gen_struct_or_union_type_die): Schedule template parameters DIEs
-       generation for the end of CU compilation.
-       (dwarf2out_finish): Generate template parameters DIEs here.
+       (gen_scheduled_generic_parms_dies): New functions.
+       (gen_struct_or_union_type_die): Schedule template parameters DIEs
+       generation for the end of CU compilation.
+       (dwarf2out_finish): Generate template parameters DIEs here.
 
 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
 
 
 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
-        * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually
-        include.
-        (cortex_a9_dp): Handle neon types correctly.
+       * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually
+       include.
+       (cortex_a9_dp): Handle neon types correctly.
 
 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
 
        (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
 
 2011-01-17  Olivier Hainque  <hainque@adacore.com>
-            Michael Haubenwallner  <michael.haubenwallner@salomon.at>
-            Eric Botcazou  <ebotcazou@adacore.com>
+           Michael Haubenwallner  <michael.haubenwallner@salomon.at>
+           Eric Botcazou  <ebotcazou@adacore.com>
 
        PR target/46655
        * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
        PR debug/PR46973
        * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
        static function.
-       (prune_unused_types_mark): Use it.
+       (prune_unused_types_mark): Use it.
 
 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
 
index 30f8b75..c5e45fb 100644 (file)
@@ -1,6 +1,6 @@
 /* Subroutines used for code generation on IBM RS/6000.
    Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
    Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
 
@@ -16182,7 +16182,18 @@ print_operand (FILE *file, rtx x, int code)
            output_address (XEXP (x, 0));
        }
       else
-       output_addr_const (file, x);
+       {
+         if (toc_relative_expr_p (x))
+           /* This hack along with a corresponding hack in
+              rs6000_output_addr_const_extra arranges to output addends
+              where the assembler expects to find them.  eg.
+              (const (plus (unspec [symbol_ref ("x") tocrel]) 4))
+              without this hack would be output as "x@toc+4".  We
+              want "x+4@toc".  */
+           output_addr_const (file, tocrel_base);
+         else
+           output_addr_const (file, x);
+       }
       return;
 
     case '&':