diff options
author | Nick Clifton <nickc@redhat.com> | 2004-01-12 15:02:22 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2004-01-12 15:02:22 +0000 |
commit | ca9a79a174a35d35d26724cdc223facb1c913700 (patch) | |
tree | f0bd8bc540334a79b842cb3a60a70a5fcec58c0b /gas/config/tc-h8300.c | |
parent | a94154757c96c5e4fbba4b2846befbc70b7d10b7 (diff) | |
download | binutils-ca9a79a174a35d35d26724cdc223facb1c913700.zip binutils-ca9a79a174a35d35d26724cdc223facb1c913700.tar.gz binutils-ca9a79a174a35d35d26724cdc223facb1c913700.tar.bz2 |
Add support for relaxation of bit manipulation instructions.
Diffstat (limited to 'gas/config/tc-h8300.c')
-rw-r--r-- | gas/config/tc-h8300.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/gas/config/tc-h8300.c b/gas/config/tc-h8300.c index 8ff86ea..467d9bc 100644 --- a/gas/config/tc-h8300.c +++ b/gas/config/tc-h8300.c @@ -1,6 +1,6 @@ /* tc-h8300.c -- Assemble code for the Renesas H8/300 Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, - 2001, 2002, 2003 Free Software Foundation, Inc. + 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -1578,9 +1578,23 @@ build_bytes (const struct h8_instruction *this_try, struct h8_op *operand) for (i = 0; i < this_try->length; i++) output[i] = (asnibbles[i * 2] << 4) | asnibbles[i * 2 + 1]; - /* Note if this is a movb instruction -- there's a special relaxation - which only applies to them. */ - if (this_try->opcode->how == O (O_MOV, SB)) + /* Note if this is a movb or a bit manipulation instruction + there is a special relaxation which only applies. */ + if ( this_try->opcode->how == O (O_MOV, SB) + || this_try->opcode->how == O (O_BCLR, SB) + || this_try->opcode->how == O (O_BAND, SB) + || this_try->opcode->how == O (O_BIAND, SB) + || this_try->opcode->how == O (O_BILD, SB) + || this_try->opcode->how == O (O_BIOR, SB) + || this_try->opcode->how == O (O_BIST, SB) + || this_try->opcode->how == O (O_BIXOR, SB) + || this_try->opcode->how == O (O_BLD, SB) + || this_try->opcode->how == O (O_BNOT, SB) + || this_try->opcode->how == O (O_BOR, SB) + || this_try->opcode->how == O (O_BSET, SB) + || this_try->opcode->how == O (O_BST, SB) + || this_try->opcode->how == O (O_BTST, SB) + || this_try->opcode->how == O (O_BXOR, SB)) movb = 1; /* Output any fixes. */ |