]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/22093 (Unaligned access to HI values causes unrecognizable insn error)
authorUros Bizjak <uros@gcc.gnu.org>
Wed, 30 Sep 2009 18:22:48 +0000 (20:22 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 30 Sep 2009 18:22:48 +0000 (20:22 +0200)
PR target/22093
* config/alpha/alpha.md (unaligned_storehi_be): Force operand
of plus RTX into register.

testsuite/ChangeLog:

PR target/22093
* gcc.target/alpha/pr22093.c: New test.

From-SVN: r152344

gcc/ChangeLog
gcc/config/alpha/alpha.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/alpha/pr22093.c [new file with mode: 0644]

index 458f80c158d0ca8feac0fb8bfff140e57064d968..42395156aa7ed4cfbd4b7212a21604e564939f29 100644 (file)
@@ -1,3 +1,9 @@
+2009-09-30  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/22093
+       * config/alpha/alpha.md (unaligned_storehi_be): Force operand
+       of plus RTX into register.
+
 2009-09-25  Alan Modra  <amodra@bigpond.net.au>
 
        * config/rs6000/rs6000.md (load_toc_v4_PIC_3c): Correct POWER
index 15e6564bac10314ecd48680194ac773c55130234..831a6983b66990532bb8cf3b9f94a7f35a0b27cc 100644 (file)
        (mem:DI (and:DI (match_operand:DI 0 "address_operand" "")
                        (const_int -8))))
    (set (match_operand:DI 2 "register_operand" "")
-       (plus:DI (match_dup 0) (const_int 1)))
+       (plus:DI (match_dup 5) (const_int 1)))
    (set (match_dup 3)
        (and:DI (not:DI (ashift:DI
                          (const_int 65535)
    (set (mem:DI (and:DI (match_dup 0) (const_int -8)))
        (match_dup 4))]
   "WORDS_BIG_ENDIAN"
-  "")
+  "operands[5] = force_reg (DImode, operands[0]);")
 \f
 ;; Here are the define_expand's for QI and HI moves that use the above
 ;; patterns.  We have the normal sets, plus the ones that need scratch
index f0b65ed49ebcc76eb03f5e1da513a2f275412424..cf8a3cd12c2b3776307710c7c5452a42b3b329d7 100644 (file)
@@ -1,3 +1,8 @@
+2009-09-30  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/22093
+       * gcc.target/alpha/pr22093.c: New test.
+
 2009-09-23  Uros Bizjak  <ubizjak@gmail.com>
 
        PR c/39779
 2009-08-13  Richard Guenther  <rguenther@suse.de>
 
        PR rtl-optimization/41033
-       * gcc.dg/pr41033.c: New test. 
+       * gcc.dg/pr41033.c: New test.
 
 2009-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * gcc.c-torture/compile/pr40204.c: New test.
 
        2009-02-03  Jakub Jelinek  <jakub@redhat.com>
+
        PR target/35318
        * gcc.c-torture/compile/pr35318.c: New test.
 
 
        PR objc/27377
        * objc.dg/conditional-1.m: New tests.
-       
+
 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gcc.c-torture/compile/20090401-1.c: New test.
        * gcc.dg/builtins-1.c: SPU does not support __builtin_inff.
        * gcc.dg/builtin-inf-1.c: SPU does not support __builtin_inff.
        Check for error instead of warning "does not support infinity".
-       * gcc.dg/builtins-43.c: Disable "float" Inf/Nan tests on SPU. 
+       * gcc.dg/builtins-43.c: Disable "float" Inf/Nan tests on SPU.
        * gcc.dg/builtins-44.c: Likewise.
        * gcc.dg/builtins-45.c: Likewise.
        * gcc.dg/torture/builtin-math-2.c: Likewise.
 
        PR rtl-optimization/36111
        * gcc.dg/pr36111.c: New test.
-       
+
 2008-06-06  Joseph Myers  <joseph@codesourcery.com>
 
        * lib/target-supports.exp (check_effective_target_powerpc_spu):
 
        PR c++/35338
        * g++.dg/other/error25.C: New.
-       
+
 2008-03-05  Release Manager
 
        * GCC 4.3.0 released.
 
        * lib/target-supports.exp (check_effective_target_hard_float): Remove
        special case for xtensa-*-*.
-       
+
 2008-02-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
 
        PR fortran/35037
 
        PR libfortran/34795
        * gfortran.dg/inquire_13.f90: New test.
-       
+
        PR libfortran/34659
        * gfortran.dg/continuation_9.f90: New test.
 
 
 2008-01-18  Tobias Burnus  <burnus@net-b.de>
 
-       * gfortran.dg/large_real_kind_form_io_1.f90: Enlarge string for internal I/O.
+       * gfortran.dg/large_real_kind_form_io_1.f90: Enlarge string
+       for internal I/O.
 
 2008-01-18  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
        * gfortran.dg/argument_checking_14.f90: New.
 
 2008-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
-       
+
        PR libfortran/34671
        * gfortran.dg/anyallcount_1.f90:  New test.
 
        PR c++/34052
        * g++.dg/cpp0x/vt-34052.C: New.
        * g++.dg/template/ttp26.C: New.
-       
+
 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gnat.dg/rep_clause2.ad[sb]: New test.
        PR c++/24924
        * g++.dg/cpp/pedantic-errors.C: Delete.
        * g++.dg/cpp/permissive.C: Delete.
-       
+
 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gcc.c-torture/compile/20080114-1.c: New test.
 
 2007-12-18  Douglas Gregor  <doug.gregor@gmail.com>
            Jakub Jelinek  <jakub@redhat.com>
-       
+
        PR c++/32565
        PR c++/33943
        PR c++/33965
 
 2007-12-17  Dorit Nuzman  <dorit@il.ibm.com>
 
-       * gcc.dg/tree-ssa/gen-vect-2.c: Change verbosity level to 4.    
+       * gcc.dg/tree-ssa/gen-vect-2.c: Change verbosity level to 4.
        * gcc.dg/tree-ssa/gen-vect-32.c: Likewise
        * gcc.dg/tree-ssa/gen-vect-25.c: Likewise
        * gcc.dg/tree-ssa/gen-vect-26.c: Likewise
        PR fortran/34427
        * gfortran.dg/namelist_42.f90: Update.
        * gfortran.dg/namelist_43.f90: New.
-       
+
 2007-12-16  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/34495
 
 2007-12-16  Danny Smith <dannysmith@users.sourceforge.net>
 
-       * gcc.target/i386/fastcall-1.c: (f4): Change return type to
-       void. 
+       * gcc.target/i386/fastcall-1.c: (f4): Change return type to void.
 
 2007-12-16  Jakub Jelinek  <jakub@redhat.com>
 
 
 2007-12-13  Olga Golovanevsky  <olga@il.ibm.com>
 
-       * gcc.dg/struct/struct-reorg.exp: Replace 
-        DEFAULT_CFLAGS by STRUCT_REORG_CFLAFS. 
-       
+       * gcc.dg/struct/struct-reorg.exp: Replace
+        DEFAULT_CFLAGS by STRUCT_REORG_CFLAFS.
+
 2007-12-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR libfortran/34370
 
 2007-12-13  Olga Golovanevsky  <olga@il.ibm.com>
 
-       * gcc.dg/struct: New directory with tests 
+       * gcc.dg/struct: New directory with tests
        for struct-reorg optimizaion.
        * gcc.dg/struct/struct-reorg.exp: New script.
        * gcc.dg/struct/wo_prof_array_through_pointer.c: New test.
        PR ada/34173
        * gnat.dg/unc_memops.ad[sb]: Support for ...
        * gnat.dg/unc_memfree.adb: New test.
-       
+
 2007-12-06  Sebastian Pop  <sebastian.pop@amd.com>
 
        * gfortran.dg/ltrans-7.f90: New.
        * g++.dg/cpp0x/variadic-ttp.C: New.
 
 2007-12-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
-       
+
        * gcc.dg/parse-decl-after-if.c: New.
        * gcc.dg/20031223-1.c: Adjust.
-       
+
 2007-12-04  Douglas Gregor  <doug.gregor@gmail.com>
 
        PR c++/33509
        * gfortran.dg/mvbits_3.f90: New.
 
 2007-11-28  Bob Wilson  <bob.wilson@acm.org>
-       
+
        * lib/target-supports.exp (check_effective_target_mips_soft_float):
        Delete.
        (check_effective_target_hard_float): New.
        * gcc.dg/var-expand1.c: Skip for targets without FPU instructions.
        * gcc.dg/pr30957-1.c: Likewise.
-       
+
 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
 
        PR ada/15804
 
 2007-11-23  Mark Mitchell  <mark@codesourcery.com>
            Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
-       
+
        PR c++/5310
        * g++.dg/warn/pr5310.C: New.
        * g++.dg/warn/pr33160.C: New.
-       
+
 2007-11-23  Richard Guenther  <rguenther@suse.de>
            Michael Matz  <matz@suse.de>
 
 
        PR fortran/33317
        * gfortran.dg/optional_dim_2.f90: New test.
-       
+
        PR fortran/34139
        * gfortran.dg/subref_array_pointer_2.f90: Update test condition.
-       
+
 2007-11-18  Jakub Jelinek  <jakub@redhat.com>
 
        PR rtl-optimization/34132
 
        PR middle-end/33826
        * gcc.dg/pr33826.c: New.
-       * gcc.dg/tree-ssa/20030714-1.c: Removed two tests that depend on 
+       * gcc.dg/tree-ssa/20030714-1.c: Removed two tests that depend on
        recursive functions being marked pure or const.
-       
+
 2007-11-08  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/33917
        PR c++/33977
        PR c++/33886
        * g++.dg/other/canon-array.C: New.
-       
+
 2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>
 
        * g++.dg/parser/crash36.C: Tweak expected errors.
 
        PR c++/33939
        * g++.dg/cpp0x/variadic-rref.C: New.
-       
+
 2007-11-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
 
        * g++dg/warn/pointer-integer-comparison.C: New.
 
 2007-11-03  Dorit Nuzman  <doirit@il.ibm.com>
 
-       * gfortran.dg/vect/no-vfa-pr32377.f90: Remove xfail.            
+       * gfortran.dg/vect/no-vfa-pr32377.f90: Remove xfail.
 
 2007-11-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
 
        PR c/29062
        * gcc.dg/20031223-1.c: Adjust error output.
        * gcc.dg/parse-decl-after-label.c: New.
-       
+
 2007-11-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR libfortran/24685
        * gfortran.dg/interface_19.f90: New.
        * gfortran.dg/interface_20.f90: New.
        * gfortran.dg/interface_21.f90: New.
-       
+
 2007-10-31  Sebastian Pop  <sebastian.pop@amd.com>
 
        PR tree-optimization/32377
        * gfortran.dg/vect/pr32377.f90: New.
-       
+
 2007-10-31  Richard Guenther  <rguenther@suse.de>
 
        PR middle-end/33779
 
        PR c++/19531
        * g++.dg/opt/nrv8.C: New.
-       
+
 2007-10-30  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/33709
 2007-10-26  Douglas Gregor  <doug.gregor@gmail.com>
 
        * g++.dg/cpp0x/pr33839.C: New.
-       
+
 2007-10-26  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/33744
        * g++.dg/vect/pr33860a.cc: New test.
 
 2007-10-23  Tehila Meyzels  <tehila@il.ibm.com>
-           Revital Eres  <eres@il.ibm.com>      
+           Revital Eres  <eres@il.ibm.com>
 
        * gcc.dg/sms-2.c: New testcase.
 
        * gcc.dg/pr33645-1.c: New test.
        * gcc.dg/pr33645-2.c: New test.
        * gcc.dg/pr33645-3.c: New test.
+
        PR c++/32121
        * g++.dg/ext/label4.C: Adjust error regexp.
        * g++.dg/ext/label6.C: Adjust error regexp.
 
        PR fortran/33500
        * gfortran.fortran-torture/compile/logical-1.f90: New testcase.
-       
+
 2007-10-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
 
        PR testsuite/33391
        * gcc.target/i386/i386.exp (check_effective_target_sse5): Check
        whether the SSE5 instructions can be generated.
 
-       * gcc.target/i386/sse5-check.h: New. Add support for 
-       SSE5 tests.
+       * gcc.target/i386/sse5-check.h: New. Add support for SSE5 tests.
 
        * gcc.target/i386/sse-12.c: Include bmmintrin.h instead of
        ammintrin.h, and turn on -msse5 option instead of -msse4a.
        * gcc.dg/pr32338-2.c: New test.
 
 2007-09-12  Bob Wilson  <bob.wilson@acm.org>
-       
+
        * lib/target-supports.exp (check_effective_target_sync_int_long):
        Revert change to add xtensa.
        (check_effective_target_sync_char_short): Likewise.
-       
+
 2007-09-12  Olivier Hainque  <hainque@adacore.com>
 
        * gnat.dg/packed_subtype.adb: New test.
 2007-09-11  Christopher D. Rickett  <crickett@lanl.gov>
 
        PR fortran/33040
-       * gfortran.dg/c_ptr_tests_11.f03: New test case. 
+       * gfortran.dg/c_ptr_tests_11.f03: New test case.
 
 2007-09-11  Jakub Jelinek  <jakub@redhat.com>
 
 
 2007-09-10  Harsha Jagasia <harsha.jagasia@amd.com>
 
-       * gcc.dg/vect/costmodel/i386/costmodel-vect-31.c: 
+       * gcc.dg/vect/costmodel/i386/costmodel-vect-31.c:
        Change dg-final to expect 1 non-profitable loop and
        3 profitable loops.
        * gcc.dg/vect/costmodel/x86-64/costmodel-vect-31.c:
        * gcc.dg/vect/costmodel/x86-64/costmodel-fast-math-vect-pr29925.c:
        Change dg-final to expect 1 profitable loop.
        * gcc.dg/vect/costmodel/i386/costmodel-fast-math-vect-pr29925.c:
-       Change dg-final to expect 1 profitable loop.    
-       
+       Change dg-final to expect 1 profitable loop.
+
 2007-09-10  Richard Sandiford  <richard@codesourcery.com>
 
        * gcc.target/mips/call-saved-1.c: New test.
        gcc.dg/vect/no-scevccp-slp-30.c, gcc.dg/vect/no-scevccp-slp-31.c,
        gcc.dg/vect/no-math-errno-slp-32.c, gcc.dg/vect/slp-33.c,
        gcc.dg/vect/slp-34.c, gcc.dg/vect/slp-35.c, gcc.dg/vect/slp-36.c,
-       gcc.dg/vect/slp-37.c, gcc.dg/vect/vect-vfa-slp.c, 
+       gcc.dg/vect/slp-37.c, gcc.dg/vect/vect-vfa-slp.c,
        gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c,
        gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c: New testcases.
        * gcc.dg/vect/vect-vfa-03.c: Change the test to prevent SLP.
        now obsolete simplification.
 
 2007-09-07  Dorit Nuzman  <dorit@il.ibm.com>
-       
+
        PR tree-optimization/33299
        * gfortran.dg/vect/vect.exp: Compile some tests with -ffast-math.
        * gfortran.dg/vect/fast-math-pr33299.f90: New test.
 2007-08-31  Olivier Hainque  <hainque@adacore.com>
 
        * gnat.dg/test_oalign.adb, oalign[12].ads: New test.
-       
+
 2007-08-31  David Edelsohn  <edelsohn@gnu.org>
            Revital Eres  <eres@il.ibm.com>
 
 2007-08-27  Daniel Berlin  <dberlin@dberlin.org>
 
        PR tree-optimization/33173
-       
+
        * gcc.c-torture/compile/pr33173.c: New.
 
 2007-08-27  H.J. Lu  <hongjiu.lu@intel.com>
        include multiple kinds for SHAPE parameter within a single
        namespace.
        * gfortran.dg/c_f_pointer_shape_tests_2_driver.c: Ditto.
-       * gfortran.dg/c_f_pointer_shape_tests_3.f03: New test case. 
+       * gfortran.dg/c_f_pointer_shape_tests_3.f03: New test case.
 
 2007-08-22  Janus Weil  <jaydub66@gmail.com>
 
 2007-08-21  Christian Bruel  <christian.bruel@st.com>
 
        * gcc.dg/fold-sub.c: New test.
-       
+
 2007-08-22  Uros Bizjak  <ubizjak@gmail.com>
 
        * gcc.dg/20000724-1.c, gcc.dg/980312-1.c, gcc.dg/980313-1.c,
 
 2007-08-07  Dorit Nuzman  <dorit@il.ibm.com>
 
-       * gcc.dg/vect/vect-28.c: Fix test to not expect peeling on 
+       * gcc.dg/vect/vect-28.c: Fix test to not expect peeling on
        !vector_alignment_reachable targets.
        * gcc.dg/vect/vect-33.c: Likewise.
        * gcc.dg/vect/vect-42.c: Likewise.
        * gfortran.dg/vect-3.f90: Likewise.
        * gfortran.dg/vect-4.f90: Likewise.
        * gfortran.dg/vect-5.f90: Likewise.
-       * lib/target-supports.exp (check_effective_target_natural_alignment): 
-       Return false for darwin. 
+       * lib/target-supports.exp (check_effective_target_natural_alignment):
+       Return false for darwin.
        (check_effective_target_vector_alignment_reachable_for_double): New.
 
 2007-08-07  Andreas Krebbel  <krebbel1@de.ibm.com>
 
        PR c++/30851
        * g++.dg/parse/asm3.C: Likewise.
-       
+
 2007-08-02  Rask Ingemann Lambertsen  <rask@sygehus.dk>
 
        * gcc.dg/tree-ssa/gen-vect-2.c: Use "char" for vector elements if
        (check_effective_target_vector_alignment_reachable): New.
        * config/spu/spu.c (spu_vector_alignment_reachable): New.
        (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
-       * * gcc.dg/vect/pr25413a.c: Use vector_alignment_reachable target 
+       * * gcc.dg/vect/pr25413a.c: Use vector_alignment_reachable target
        check.
        * gcc.dg/vect/pr25413.c: Likewise.
        * gcc.dg/vect/pr31699.c: Likewise.
        PR fortran/32800
        * gfortran.dg/bind_c_usage_8.f03: New test case.
        * gfortran.dg/c_f_pointer_tests_2.f03: Ditto.
-       * gfortran.dg/c_ptr_tests_5.f03: Updated expected error message. 
+       * gfortran.dg/c_ptr_tests_5.f03: Updated expected error message.
 
 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
 
 
        PR fortran/32823
        * gfortran.dg/int_2.f90: New test.
-       
+
 2007-07-21  Rask Ingemann Lambertsen  <rask@sygehus.dk>
 
        * gcc.dg/inline-23.c: Use pointer sized type for cast from pointer.
        test inputs.
 
 2007-07-18  Bob Wilson  <bob.wilson@acm.org>
-       
+
        * lib/target-supports.exp (check_effective_target_sync_int_long):
        Enable for xtensa.
        (check_effective_target_sync_char_short): Likewise.
-       
+
 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * gcc.dg/pr28796-2.c: Add more cases.
 
        PR fortran/32242
        * gfortran.dg/pr32242.f90: New test.
-       
+
 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
            David Ung  <davidu@mips.com>
 
        and dfcgt patterns.
        * gcc.target/spu/intrinsics-2.c: New.  Test intrinsics for
        V2DFmode comparison and test special values.
-       * lib/target-supports.exp: Switch on test for V2DFmode 
+       * lib/target-supports.exp: Switch on test for V2DFmode
        vector conditional expression.
 
 2007-07-13  Richard Guenther  <rguenther@suse.de>
        * gcc.target/ia64/fpreg-1.c: Likewise.
        * gcc.target/m68k/interrupt_thread-2.c: Likewise.
        * gcc.target/m68k/interrupt_thread-3.c: Likewise.
-       
+
 2007-07-12  Daniel Franke  <franke.daniel@gmail.com>
 
        PR fortran/31639
        PR testsuite/25241
        * gcc.dg/pch/counter-2.c: Match every message with its appropriate
        directive.
-       
+
 2007-07-10  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/32157
        * g++.dg/gomp/pr31748.C: New test.
 
 2007-07-02  Ira Rosen  <irar@il.ibm.com>
+
        PR tree-optimization/32230
        * gcc.dg/vect/pr32230.c: New test.
 
 2007-06-29  Douglas Gregor  <doug.gregor@gmail.com>
 
        * g++.dg/other/canon-31724.C: New.
-       
+
 2007-06-29  Jan Hubicka  <jh@suse.cz>
 
        PR middle-end/32372
 2007-06-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        * gfortran.dg/secnds-1.f: Revise test to reduce random errors.
-       
+
 2007-06-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR fortran/32456
 2007-06-21  Christian Bruel  <christian.bruel@st.com>
 
        * gcc.dg/attr-isr.c: Test delay slot content.
-       
+
 2007-06-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR fortran/32361
 2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
 
        * gcc.c-torture/compile/pr32355.c: New testcase.
-       
+
 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
 
        PR tree-optimization/32383
 2007-06-17  Kenneth Zadeck <zadeck@naturalbridge.com>
 
        * gcc.c-torture/compile/pr32349.c: New testcase.
-       
+
 2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        * gcc.target/sparc/align.c: Use 'unsigned char' as element type.
 2007-06-14  Dorit Nuzman  <dorit@il.ibm.com>
 
        PR target/32274
-       * gcc.dg/vect/pr32224.c: Fix.   
-       
+       * gcc.dg/vect/pr32224.c: Fix.
+
 2007-06-13  Eric Christopher  <echristo@apple.com>
 
        * gcc.target/i386/ssefn-1.c: Add -march=i386.
diff --git a/gcc/testsuite/gcc.target/alpha/pr22093.c b/gcc/testsuite/gcc.target/alpha/pr22093.c
new file mode 100644 (file)
index 0000000..aa00e15
--- /dev/null
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+struct shared_ptr_struct
+{
+  unsigned long phase : 48;
+  unsigned thread : 16;
+  void *addr;
+} x;
+
+void foo (void)
+{
+   x.thread = 2;
+}