i386.md (*movti_rex64): Add "!" to "r" constraint of operand 0.
authorUros Bizjak <uros@gcc.gnu.org>
Mon, 30 Jun 2008 21:24:15 +0000 (23:24 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Mon, 30 Jun 2008 21:24:15 +0000 (23:24 +0200)
* config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
of operand 0.

testsuite/ChangeLog:

* gcc.target/i386/movti.c: New test.

From-SVN: r137291

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

index 7c7fd12fe71b358d403fe0b7b15b89b7e6df0d77..aaf1d083447ad96ce20837a4c41db9d7e8aabda3 100644 (file)
@@ -1,3 +1,8 @@
+2008-06-30 Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
+       of operand 0.
+
 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
 
        * ifcvt.c (cond_move_process_if_block): Free vectors on false
@@ -19,7 +24,7 @@
 
        * config/i386/i386.c (contains_aligned_value_p): Return true
        for __float128.
-       (ix86_function_arg_boundary): Return its natural boundary for
+       (ix86_function_arg_boundary): Return its natural boundary
        for __float128.
        (return_in_memory_32): Don't check TDmode.
        (ix86_split_to_parts): Support splitting into 4 parts and
@@ -27,8 +32,7 @@
        (ix86_split_long_move): Support splitting into 4 parts.
        (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
        for SSE2.
-       (ix86_init_mmx_sse_builtins): Move __float80 and __float128
-       to ...
+       (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
        (ix86_init_builtins): Here.
        (ix86_scalar_mode_supported_p): Always return true for TFmode.
        (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
@@ -51,9 +55,7 @@
            H.J. Lu  <hongjiu.lu@intel.com>
 
        * global.c (compute_regsets): Set frame_pointer_needed here.
-
-       * reload1.c (init_elim_table): Don't set frame_pointer_needed
-       here.
+       * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
 
 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
 
index ed3c0d17b36dc75bd45d7852e85b6dea996aec21..c67cf467bc90ac522094a40e4e59e08cecd0f44d 100644 (file)
              (const_string "TI")))])
 
 (define_insn "*movti_rex64"
-  [(set (match_operand:TI 0 "nonimmediate_operand" "=r,o,x,x,xm")
+  [(set (match_operand:TI 0 "nonimmediate_operand" "=!r,o,x,x,xm")
        (match_operand:TI 1 "general_operand" "riFo,riF,C,xm,x"))]
   "TARGET_64BIT
    && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
index f1ca63236b2d875fa53067c96292c4ff390bdff1..3a2c9a1b1e2ce7db12baf516d0da56549d2d4271 100644 (file)
@@ -1,3 +1,7 @@
+2008-06-30 Uros Bizjak  <ubizjak@gmail.com>
+
+       * gcc.target/i386/movti.c: New test.
+
 2008-06-30  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/36662
diff --git a/gcc/testsuite/gcc.target/i386/movti.c b/gcc/testsuite/gcc.target/i386/movti.c
new file mode 100644 (file)
index 0000000..e306c1e
--- /dev/null
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target dfp } */
+/* { dg-options "-O -std=gnu99" } */
+
+_Decimal128 test (void)
+{
+  return 1234123412341234.123412341234dl;
+}
+
+/* { dg-final { scan-assembler-not "movabs" } } */