diff options
author | Naveen.H.S <naveenh@kpitcummins.com> | 2006-05-30 22:53:48 +0000 |
---|---|---|
committer | DJ Delorie <dj@gcc.gnu.org> | 2006-05-30 18:53:48 -0400 |
commit | 9cb96754ae0a6af89ec8286d6a68d76c70698a65 (patch) | |
tree | ca97d5b499f73302ca53b0ea23f70f72b8e171ed /gcc | |
parent | 96a782e226f8c0ab9677ec5ff26319d6ee1062c4 (diff) | |
download | gcc-9cb96754ae0a6af89ec8286d6a68d76c70698a65.tar.gz |
m32c.c (m32c_expand_insv): Check that the value we're inserting is a singlt-bit constant.
* config/m32c/m32c.c (m32c_expand_insv): Check that the value
we're inserting is a singlt-bit constant.
Co-Authored-By: DJ Delorie <dj@redhat.com>
From-SVN: r114250
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/m32c/m32c.c | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ed782e16ee6..04a83735875 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-05-30 Naveen.H.S <naveenh@kpitcummins.com> + DJ Delorie <dj@redhat.com> + + * config/m32c/m32c.c (m32c_expand_insv): Check that the value + we're inserting is a singlt-bit constant. + 2006-05-30 Roger Sayle <roger@eyesopen.com> * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c index 186f666d0fb..6fddc4b2760 100644 --- a/gcc/config/m32c/m32c.c +++ b/gcc/config/m32c/m32c.c @@ -3435,6 +3435,14 @@ m32c_expand_insv (rtx *operands) if (INTVAL (operands[1]) != 1) return 1; + /* Our insv opcode (bset, bclr) can only insert a one-bit constant. */ + if (GET_CODE (operands[3]) != CONST_INT) + return 1; + if (INTVAL (operands[3]) != 0 + && INTVAL (operands[3]) != 1 + && INTVAL (operands[3]) != -1) + return 1; + mask = 1 << INTVAL (operands[2]); op0 = operands[0]; |