OSDN Git Service

2004-12-23 Tomer Levi <Tomer.Levi@nsc.com>
authortomerl <tomerl>
Thu, 23 Dec 2004 13:49:14 +0000 (13:49 +0000)
committertomerl <tomerl>
Thu, 23 Dec 2004 13:49:14 +0000 (13:49 +0000)
* config/tc-crx.c: Support 'bcop' relaxation (dealt as in 'cmp&branch' case).

gas/config/tc-crx.c

index 85b7f31..a05fcaa 100644 (file)
@@ -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 ();