aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-crx.c
diff options
context:
space:
mode:
authorTomer Levi <Tomer.Levi@nsc.com>2004-12-23 13:50:36 +0000
committerTomer Levi <Tomer.Levi@nsc.com>2004-12-23 13:50:36 +0000
commit30c629226c69c7df74c445252e03dee898d8d6d4 (patch)
tree89ff4a55bfe4ffa9c536d9a11892124afba38a83 /gas/config/tc-crx.c
parent17a8343285a724743cc3ec6667845715f1bdc21e (diff)
downloadgdb-30c629226c69c7df74c445252e03dee898d8d6d4.zip
gdb-30c629226c69c7df74c445252e03dee898d8d6d4.tar.gz
gdb-30c629226c69c7df74c445252e03dee898d8d6d4.tar.bz2
2004-12-23 Tomer Levi <Tomer.Levi@nsc.com>
* config/tc-crx.c: Support 'bcop' relaxation (dealt as in 'cmp&branch' case).
Diffstat (limited to 'gas/config/tc-crx.c')
-rw-r--r--gas/config/tc-crx.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/gas/config/tc-crx.c b/gas/config/tc-crx.c
index 85b7f31..a05fcaa 100644
--- a/gas/config/tc-crx.c
+++ b/gas/config/tc-crx.c
@@ -134,7 +134,7 @@ const relax_typeS md_relax_table[] =
{0xfffe, -0x10000, 4, 4}, /* 16 */
{0xfffffffe, -0xfffffffe, 6, 0}, /* 32 */
- /* cmpbr */
+ /* cmpbr/bcop */
{0xfe, -0x100, 4, 6}, /* 8 */
{0xfffffe, -0x1000000, 6, 0} /* 24 */
};
@@ -707,10 +707,8 @@ process_label_constant (char *str, ins * crx_ins)
crx_ins->rtype = BFD_RELOC_CRX_ABS32;
else if (IS_INSN_TYPE (BRANCH_NEQ_INS))
crx_ins->rtype = BFD_RELOC_CRX_REL4;
- else if (IS_INSN_TYPE (CMPBR_INS))
+ else if (IS_INSN_TYPE (CMPBR_INS) || IS_INSN_TYPE (COP_BRANCH_INS))
crx_ins->rtype = BFD_RELOC_CRX_REL8_CMP;
- else if (IS_INSN_TYPE (COP_BRANCH_INS))
- crx_ins->rtype = BFD_RELOC_CRX_REL24;
break;
case arg_ic:
@@ -1949,8 +1947,8 @@ print_insn (ins *insn)
/* bal */
else if (IS_INSN_TYPE (DCR_BRANCH_INS) || IS_INSN_MNEMONIC ("bal"))
relax_subtype = 3;
- /* cmpbr */
- else if (IS_INSN_TYPE (CMPBR_INS))
+ /* cmpbr/bcop */
+ else if (IS_INSN_TYPE (CMPBR_INS) || IS_INSN_TYPE (COP_BRANCH_INS))
relax_subtype = 5;
else
abort ();