Commit 77dc5297 by Uros Bizjak

re PR target/56114 (x86_64-linux-gnu-gcc generate wrong asm instruction MOVABS for intel syntax)

	PR target/56114
	* config/i386/i386.md (*movabs<mode>_1): Add square brackets around
	operand 0 in movabs insn template for -masm=intel asm alternative.
	(*movabs<mode>_2): Ditto for operand 1.

testsuite/ChangeLog:

	PR target/56114
	* gcc.target/i386/pr56114.c: New test.

From-SVN: r195494
parent ca322749
2013-01-27 Uros Bizjak <ubizjak@gmail.com>
PR target/56114
* config/i386/i386.md (*movabs<mode>_1): Add square brackets around
operand 0 in movabs insn template for -masm=intel asm alternative.
(*movabs<mode>_2): Ditto for operand 1.
2013-01-26 David Holsgrove <david.holsgrove@xilinx.com> 2013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
PR target/54663 PR target/54663
...@@ -38,8 +45,8 @@ ...@@ -38,8 +45,8 @@
* config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
entries into lane and laneq entries. entries into lane and laneq entries.
* config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>): Remove * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
AdvSIMD scalar modes. Remove AdvSIMD scalar modes.
(aarch64_sq<r>dmulh_laneq<mode>): New. (aarch64_sq<r>dmulh_laneq<mode>): New.
(aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
modes. modes.
...@@ -91,8 +98,7 @@ ...@@ -91,8 +98,7 @@
2013-01-24 Diego Novillo <dnovillo@google.com> 2013-01-24 Diego Novillo <dnovillo@google.com>
* Makefile.in (GGC): Remove. Replace all instances with * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
ggc-page.o.
(ggc-zone.o): Remove. (ggc-zone.o): Remove.
* configure.ac: Remove option --with-gc. * configure.ac: Remove option --with-gc.
* configure: Re-generate. * configure: Re-generate.
...@@ -102,13 +108,11 @@ ...@@ -102,13 +108,11 @@
(output_type_enum): Remove. Update all users. (output_type_enum): Remove. Update all users.
(write_enum_defn): Remove. Update all users. (write_enum_defn): Remove. Update all users.
(enum alloc_zone): Remove. Update all users. (enum alloc_zone): Remove. Update all users.
(write_splay_tree_allocator_def): Remove generation of gt_e_* (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
argument.
* ggc-common.c (ggc_splay_alloc): Remove first argument. * ggc-common.c (ggc_splay_alloc): Remove first argument.
Update all callers. Update all callers.
(struct ptr_data): Remove field TYPE. Update all users. (struct ptr_data): Remove field TYPE. Update all users.
(gt_pch_note_object): Remove argument TYPE. Update all (gt_pch_note_object): Remove argument TYPE. Update all users.
users.
* ggc-internal.h (ggc_pch_alloc_object): Remove last argument. * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
Update all users. Update all users.
* ggc-none.c (ggc_alloc_typed_stat): Remove. * ggc-none.c (ggc_alloc_typed_stat): Remove.
...@@ -116,14 +120,11 @@ ...@@ -116,14 +120,11 @@
(ggc_internal_alloc_zone_stat): Remove. (ggc_internal_alloc_zone_stat): Remove.
(ggc_internal_cleared_alloc_zone_stat): Remove. (ggc_internal_cleared_alloc_zone_stat): Remove.
* ggc-page.c (ggc_alloc_typed_stat): Remove. * ggc-page.c (ggc_alloc_typed_stat): Remove.
(ggc_pch_count_object): Remove last argument. Update all (ggc_pch_count_object): Remove last argument. Update all users.
users. (ggc_pch_alloc_object): Remove last argument. Update all users.
(ggc_pch_alloc_object): Remove last argument. Update all
users.
(struct alloc_zone): Remove. (struct alloc_zone): Remove.
* ggc-zone.c: Remove. * ggc-zone.c: Remove.
* ggc.h (gt_pch_note_object): Remove last argument. Update * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
all users.
(struct alloc_zone): Remove. (struct alloc_zone): Remove.
(ggc_alloc_typed_stat): Remove. (ggc_alloc_typed_stat): Remove.
(ggc_alloc_typed): Remove. (ggc_alloc_typed): Remove.
...@@ -132,11 +133,9 @@ ...@@ -132,11 +133,9 @@
(tree_zone): Remove. Update all users. (tree_zone): Remove. Update all users.
(tree_id_zone): Remove. Update all users. (tree_id_zone): Remove. Update all users.
(ggc_internal_zone_alloc_stat): Remove. Update all users. (ggc_internal_zone_alloc_stat): Remove. Update all users.
(ggc_internal_zone_cleared_alloc_stat): Remove. Update all (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
users.
(ggc_internal_zone_vec_alloc_stat): Remove. Update all users. (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
* tree-ssanames.c: Remove references to zone allocator in * tree-ssanames.c: Remove references to zone allocator in comments.
comments.
2013-01-24 Georg-Johann Lay <avr@gjlay.de> 2013-01-24 Georg-Johann Lay <avr@gjlay.de>
...@@ -179,7 +178,8 @@ ...@@ -179,7 +178,8 @@
2013-01-23 Kostya Serebryany <kcc@google.com> 2013-01-23 Kostya Serebryany <kcc@google.com>
* config/darwin.h: remove dependency on CoreFoundation (asan on Mac OS). * config/darwin.h: remove dependency on
CoreFoundation (asan on Mac OS).
2013-01-23 Jakub Jelinek <jakub@redhat.com> 2013-01-23 Jakub Jelinek <jakub@redhat.com>
......
...@@ -2308,7 +2308,7 @@ ...@@ -2308,7 +2308,7 @@
(match_operand:SWI1248x 1 "nonmemory_operand" "a,r<i>"))] (match_operand:SWI1248x 1 "nonmemory_operand" "a,r<i>"))]
"TARGET_LP64 && ix86_check_movabs (insn, 0)" "TARGET_LP64 && ix86_check_movabs (insn, 0)"
"@ "@
movabs{<imodesuffix>}\t{%1, %P0|%P0, %1} movabs{<imodesuffix>}\t{%1, %P0|[%P0], %1}
mov{<imodesuffix>}\t{%1, %a0|%a0, %1}" mov{<imodesuffix>}\t{%1, %a0|%a0, %1}"
[(set_attr "type" "imov") [(set_attr "type" "imov")
(set_attr "modrm" "0,*") (set_attr "modrm" "0,*")
...@@ -2322,7 +2322,7 @@ ...@@ -2322,7 +2322,7 @@
(mem:SWI1248x (match_operand:DI 1 "x86_64_movabs_operand" "i,r")))] (mem:SWI1248x (match_operand:DI 1 "x86_64_movabs_operand" "i,r")))]
"TARGET_LP64 && ix86_check_movabs (insn, 1)" "TARGET_LP64 && ix86_check_movabs (insn, 1)"
"@ "@
movabs{<imodesuffix>}\t{%P1, %0|%0, %P1} movabs{<imodesuffix>}\t{%P1, %0|%0, [%P1]}
mov{<imodesuffix>}\t{%a1, %0|%0, %a1}" mov{<imodesuffix>}\t{%a1, %0|%0, %a1}"
[(set_attr "type" "imov") [(set_attr "type" "imov")
(set_attr "modrm" "0,*") (set_attr "modrm" "0,*")
......
2013-01-27 Uros Bizjak <ubizjak@gmail.com>
PR target/56114
* gcc.target/i386/pr56114.c: New test.
2013-01-27 Paul Thomas <pault@gcc.gnu.org> 2013-01-27 Paul Thomas <pault@gcc.gnu.org>
PR fortran/55984 PR fortran/55984
......
/* { dg-do assemble } */
/* { dg-options "-O2 -masm=intel" } */
/* { dg-require-effective-target lp64 } */
/* { dg-require-effective-target masm_intel } */
long
foo2 (void)
{
return *(volatile int *) 0xFEE00000;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment