X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-sh.c;h=d147df6df5b20bd315b5c72fbbaf3d603bce7d44;hb=364b6d8b23fffbc773c2bda23348d73e8de86e84;hp=1303d234b000bdddc76214c184fc439afb725b9a;hpb=c2dcd04ec8f55fb69fabb24fae58555b5ab0a684;p=binutils-gdb.git diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c index 1303d234b00..d147df6df5b 100644 --- a/gas/config/tc-sh.c +++ b/gas/config/tc-sh.c @@ -1,4 +1,4 @@ -/* tc-sh.c -- Assemble code for the Renesas Super-H +/* tc-sh.c -- Assemble code for the Renesas / SuperH SH Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. @@ -136,10 +136,6 @@ const pseudo_typeS md_pseudo_table[] = {"2byte", s_uacons, 2}, {"4byte", s_uacons, 4}, {"8byte", s_uacons, 8}, -#ifdef BFD_ASSEMBLER - {"file", (void (*) PARAMS ((int))) dwarf2_directive_file, 0 }, - {"loc", dwarf2_directive_loc, 0 }, -#endif #ifdef HAVE_SH64 {"mode", s_sh64_mode, 0 }, @@ -2387,6 +2383,12 @@ md_assemble (str) if (opcode->arg[0] == A_BDISP12 || opcode->arg[0] == A_BDISP8) { + /* Since we skip get_specific here, we have to check & update + valid_arch now. */ + if (valid_arch & opcode->arch) + valid_arch &= opcode->arch; + else + as_bad (_("Delayed branches not available on SH1")); parse_exp (op_end + 1, &operand[0]); build_relax (opcode, &operand[0]); } @@ -3952,8 +3954,10 @@ tc_gen_reloc (section, fixp) rel->addend = 0; rel->howto = bfd_reloc_type_lookup (stdoutput, r_type); +#ifdef OBJ_ELF if (rel->howto->type == R_SH_IND12W) rel->addend += fixp->fx_offset - 4; +#endif if (rel->howto == NULL) { as_bad_where (fixp->fx_file, fixp->fx_line,