diff options
author | Torbjorn Granlund <tege@gnu.org> | 1993-03-10 16:57:05 +0000 |
---|---|---|
committer | Torbjorn Granlund <tege@gnu.org> | 1993-03-10 16:57:05 +0000 |
commit | 5329e2276aeb65fc8b6e8b1ddc7c99ba0a12064b (patch) | |
tree | a0bb425583d5998fac67f611dd8e35912eb32d8f /gcc | |
parent | 7887873043af19be5945e3af18aca85e9e3d476b (diff) | |
download | gcc-5329e2276aeb65fc8b6e8b1ddc7c99ba0a12064b.zip gcc-5329e2276aeb65fc8b6e8b1ddc7c99ba0a12064b.tar.gz gcc-5329e2276aeb65fc8b6e8b1ddc7c99ba0a12064b.tar.bz2 |
(reg_or_cint_move_operand): New function.
(move_operand): Add header comment.
From-SVN: r3693
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/pa/pa.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 4520520..a42a87e 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -156,6 +156,8 @@ reg_or_0_or_nonsymb_mem_operand (op, mode) return 0; } +/* Accept anything that can be moved in one instruction into a general + register. */ int move_operand (op, mode) rtx op; @@ -185,6 +187,25 @@ move_operand (op, mode) return memory_address_p (mode, op); } +/* Accept REG and any CONST_INT that can be moved in one instruction into a + general register. */ +int +reg_or_cint_move_operand (op, mode) + rtx op; + enum machine_mode mode; +{ + if (register_operand (op, mode)) + return 1; + + if (GET_CODE (op) == CONST_INT) + { + /* OK if ldo, ldil, or zdepi, can be used. */ + return (INT_14_BITS (op) || (INTVAL (op) & 0x7ff) == 0 + || zdepi_cint_p (INTVAL (op))); + } + return 0; +} + int pic_operand (op, mode) rtx op; |