diff options
author | Michael Meissner <meissner@gcc.gnu.org> | 1992-09-18 21:33:31 +0000 |
---|---|---|
committer | Michael Meissner <meissner@gcc.gnu.org> | 1992-09-18 21:33:31 +0000 |
commit | 2bba3a75c67b6e7988435887d65632ac78d73ff3 (patch) | |
tree | f66d977b534dc610f13c12bdbe5ec676b224c41b | |
parent | a5cc4aa9828f55e4da46981b1f8a183d59880ac0 (diff) | |
download | gcc-2bba3a75c67b6e7988435887d65632ac78d73ff3.zip gcc-2bba3a75c67b6e7988435887d65632ac78d73ff3.tar.gz gcc-2bba3a75c67b6e7988435887d65632ac78d73ff3.tar.bz2 |
Allow calls to absolute addresses.
From-SVN: r2154
-rw-r--r-- | gcc/config/mips/mips.md | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 9cfc27e..8f3274b 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -4005,6 +4005,13 @@ move\\t%0,%z4\\n\\ if (GET_CODE (target) == SYMBOL_REF) return \"%*jal\\t%0\"; + else if (GET_CODE (target) == CONST_INT) + { + operands[0] = target; + operands[1] = gen_rtx (REG, SImode, GP_REG_FIRST + 31); + return \"%*%[li\\t%@,%0\\n\\tjal\\t%1,%@%]\"; + } + else { operands[0] = target; @@ -4048,6 +4055,13 @@ move\\t%0,%z4\\n\\ if (GET_CODE (target) == SYMBOL_REF) return \"%*jal\\t%1\"; + else if (GET_CODE (target) == CONST_INT) + { + operands[1] = target; + operands[2] = gen_rtx (REG, SImode, GP_REG_FIRST + 31); + return \"%*%[li\\t%@,%1\\n\\tjal\\t%2,%@%]\"; + } + else { operands[1] = target; |