diff options
| author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-11 09:29:42 +0000 |
|---|---|---|
| committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-11 09:29:42 +0000 |
| commit | fd54101d20c65dc263aaa1a86e1f081e7ea91b22 (patch) | |
| tree | 800730210b76a2bcf3ff7c6d5d38f779cc1b76ea | |
| parent | 424769d7bcdbaa3435803391463eafd1f9e71245 (diff) | |
| download | ppe42-gcc-fd54101d20c65dc263aaa1a86e1f081e7ea91b22.tar.gz ppe42-gcc-fd54101d20c65dc263aaa1a86e1f081e7ea91b22.zip | |
* mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
constant addresses.
(call_internal2): Likewise.
(call_value_internal1): Likewise.
(call_value_internal2): Likewise.
(call_value_multiple_internal1): Likewise.
(call_value_multiple_internal2): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43930 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 11 | ||||
| -rw-r--r-- | gcc/config/mips/mips.md | 36 |
2 files changed, 29 insertions, 18 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b13c2564d20..80d975c0788 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2001-07-11 Richard Sandiford <rsandifo@redhat.com> + H.J. Lu <hjl@gnu.org> + + * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for + constant addresses. + (call_internal2): Likewise. + (call_value_internal1): Likewise. + (call_value_internal2): Likewise. + (call_value_multiple_internal1): Likewise. + (call_value_multiple_internal2): Likewise. + 2001-07-10 Kazu Hirata <kazu@hxi.com> * calls.c (emit_library_call_value_1): Fix a comment typo. diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index e77c295c506..d4649101fa6 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -9684,10 +9684,10 @@ ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j\\t%2" { register rtx target = operands[0]; - if (GET_CODE (target) == SYMBOL_REF) - return \"%*jal\\t%0\"; - else if (GET_CODE (target) == CONST_INT) + if (GET_CODE (target) == CONST_INT) return \"%[li\\t%@,%0\\n\\t%*jal\\t%2,%@%]\"; + else if (CONSTANT_ADDRESS_P (target)) + return \"%*jal\\t%0\"; else return \"%*jal\\t%2,%0\"; }" @@ -9703,15 +9703,15 @@ ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j\\t%2" { register rtx target = operands[0]; - if (GET_CODE (target) == SYMBOL_REF) + if (GET_CODE (target) == CONST_INT) + return \"li\\t%^,%0\\n\\tjal\\t%2,%^\"; + else if (CONSTANT_ADDRESS_P (target)) { if (GET_MODE (target) == SImode) return \"la\\t%^,%0\\n\\tjal\\t%2,%^\"; else return \"dla\\t%^,%0\\n\\tjal\\t%2,%^\"; } - else if (GET_CODE (target) == CONST_INT) - return \"li\\t%^,%0\\n\\tjal\\t%2,%^\"; else if (REGNO (target) != PIC_FUNCTION_ADDR_REGNUM) return \"move\\t%^,%0\\n\\tjal\\t%2,%^\"; else @@ -9891,10 +9891,10 @@ ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j\\t%2" { register rtx target = operands[1]; - if (GET_CODE (target) == SYMBOL_REF) - return \"%*jal\\t%1\"; - else if (GET_CODE (target) == CONST_INT) + if (GET_CODE (target) == CONST_INT) return \"%[li\\t%@,%1\\n\\t%*jal\\t%3,%@%]\"; + else if (CONSTANT_ADDRESS_P (target)) + return \"%*jal\\t%1\"; else return \"%*jal\\t%3,%1\"; }" @@ -9911,15 +9911,15 @@ ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j\\t%2" { register rtx target = operands[1]; - if (GET_CODE (target) == SYMBOL_REF) + if (GET_CODE (target) == CONST_INT) + return \"li\\t%^,%1\\n\\tjal\\t%3,%^\"; + else if (CONSTANT_ADDRESS_P (target)) { if (GET_MODE (target) == SImode) return \"la\\t%^,%1\\n\\tjal\\t%3,%^\"; else return \"dla\\t%^,%1\\n\\tjal\\t%3,%^\"; } - else if (GET_CODE (target) == CONST_INT) - return \"li\\t%^,%1\\n\\tjal\\t%3,%^\"; else if (REGNO (target) != PIC_FUNCTION_ADDR_REGNUM) return \"move\\t%^,%1\\n\\tjal\\t%3,%^\"; else @@ -10023,10 +10023,10 @@ ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j\\t%2" { register rtx target = operands[1]; - if (GET_CODE (target) == SYMBOL_REF) - return \"%*jal\\t%1\"; - else if (GET_CODE (target) == CONST_INT) + if (GET_CODE (target) == CONST_INT) return \"%[li\\t%@,%1\\n\\t%*jal\\t%4,%@%]\"; + else if (CONSTANT_ADDRESS_P (target)) + return \"%*jal\\t%1\"; else return \"%*jal\\t%4,%1\"; }" @@ -10046,15 +10046,15 @@ ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j\\t%2" { register rtx target = operands[1]; - if (GET_CODE (target) == SYMBOL_REF) + if (GET_CODE (target) == CONST_INT) + return \"li\\t%^,%1\\n\\tjal\\t%4,%^\"; + else if (CONSTANT_ADDRESS_P (target)) { if (GET_MODE (target) == SImode) return \"la\\t%^,%1\\n\\tjal\\t%4,%^\"; else return \"la\\t%^,%1\\n\\tjal\\t%4,%^\"; } - else if (GET_CODE (target) == CONST_INT) - return \"li\\t%^,%1\\n\\tjal\\t%4,%^\"; else if (REGNO (target) != PIC_FUNCTION_ADDR_REGNUM) return \"move\\t%^,%1\\n\\tjal\\t%4,%^\"; else |

