summaryrefslogtreecommitdiff
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
commit46e2c916df71a38c06ada22f48d74447a525918c (patch)
tree68adc713cb3cd19be2e1c3097c6e251bf86976a2 /gas/config/tc-crx.c
parent35fe2f7fc7a8a68f0a191dee165391c8d4711a3d (diff)
downloadbinutils-redhat-46e2c916df71a38c06ada22f48d74447a525918c.tar.gz
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 85b7f3136e..a05fcaa0f7 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 ();