OSDN Git Service

* config/iq2000/iq2000.c (function_arg): Handle TImode values.
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Apr 2009 15:25:40 +0000 (15:25 +0000)
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Apr 2009 15:25:40 +0000 (15:25 +0000)
        (function_arg_advance): Likewise.
        * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
        5th alternative.

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

gcc/ChangeLog
gcc/config/iq2000/iq2000.c
gcc/config/iq2000/iq2000.md

index 8d9bc2b..30ad268 100644 (file)
@@ -1,3 +1,10 @@
+2009-04-24  Nick Clifton  <nickc@redhat.com>
+
+       * config/iq2000/iq2000.c (function_arg): Handle TImode values.
+       (function_arg_advance): Likewise.
+       * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
+       5th alternative.
+
 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
 
        * config/s390/constraints.md ('I', 'J'): Fix condition.
index 1a99eea..d853b1f 100644 (file)
@@ -1175,6 +1175,11 @@ function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type,
       cum->arg_words += 2;
       break;
 
+    case TImode:
+      cum->gp_reg_found = 1;
+      cum->arg_words += 4;
+      break;
+
     case QImode:
     case HImode:
     case SImode:
@@ -1245,6 +1250,12 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, const_tree type,
     case DImode:
       cum->arg_words += (cum->arg_words & 1);
       regbase = GP_ARG_FIRST;
+      break;
+
+    case TImode:
+      cum->arg_words += (cum->arg_words & 3);
+      regbase = GP_ARG_FIRST;
+      break;
     }
 
   if (*arg_words >= (unsigned) MAX_ARGS_IN_REGISTERS)
index 225147c..919f6a2 100644 (file)
   "* return iq2000_move_1word (operands, insn, FALSE);"
   [(set_attr "type"    "move,load,arith,arith,load,load,store,store,xfer,xfer,move,move,move,move")
    (set_attr "mode"    "SI")
-   (set_attr "length"  "4,8,4,8,4,8,4,8,4,4,4,4,4,4")])
+   (set_attr "length"  "4,8,4,8,8,8,4,8,4,4,4,4,4,4")])
 
 ;; 16-bit Integer moves