diff options
author | Nick Clifton <nickc@redhat.com> | 2009-04-24 15:25:40 +0000 |
---|---|---|
committer | Nick Clifton <nickc@gcc.gnu.org> | 2009-04-24 15:25:40 +0000 |
commit | ac4fc08a0a80b216618a84b9452b38d5a22e82de (patch) | |
tree | 9155d50ceef1a28592a2f9110bf1a75b85d79be4 /gcc/config | |
parent | e34ccb4cd1f39f31ff1bd7374ece738ec7521d74 (diff) | |
download | gcc-ac4fc08a0a80b216618a84b9452b38d5a22e82de.zip gcc-ac4fc08a0a80b216618a84b9452b38d5a22e82de.tar.gz gcc-ac4fc08a0a80b216618a84b9452b38d5a22e82de.tar.bz2 |
iq2000.c (function_arg): Handle TImode values.
* 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.
From-SVN: r146734
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/iq2000/iq2000.c | 11 | ||||
-rw-r--r-- | gcc/config/iq2000/iq2000.md | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/config/iq2000/iq2000.c b/gcc/config/iq2000/iq2000.c index 1a99eea..d853b1f 100644 --- a/gcc/config/iq2000/iq2000.c +++ b/gcc/config/iq2000/iq2000.c @@ -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) diff --git a/gcc/config/iq2000/iq2000.md b/gcc/config/iq2000/iq2000.md index 225147c..919f6a2 100644 --- a/gcc/config/iq2000/iq2000.md +++ b/gcc/config/iq2000/iq2000.md @@ -737,7 +737,7 @@ "* 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 |