aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorGraham Markall <graham.markall@embecosm.com>2016-09-29 19:25:25 +0100
committerGraham Markall <graham.markall@embecosm.com>2016-11-03 17:14:37 +0000
commit06fe285fd293e999481ec8f5c619658aa5e3b48b (patch)
tree14ea247fc401bb535b89c9f226cd7beeb6a25f25 /gas
parent91fdca6f26cf33573364b5bd313ed4bed6a547cc (diff)
downloadgdb-06fe285fd293e999481ec8f5c619658aa5e3b48b.zip
gdb-06fe285fd293e999481ec8f5c619658aa5e3b48b.tar.gz
gdb-06fe285fd293e999481ec8f5c619658aa5e3b48b.tar.bz2
arc: Replace ARC_SHORT macro with arc_opcode_len function
In preparation for moving to a world where arc instructions can be 2, 4, 6, or 8 bytes in length, replace the ARC_SHORT macro (which is either true of false) with an arc_opcode_len function that returns a length in bytes. There should be no functional change after this commit. gas/ChangeLog: * config/tc-arc.c (assemble_insn): Replace use of ARC_SHORT with arc_opcode_len. include/ChangeLog: * opcode/arc.h (arc_opcode_len): Declare. (ARC_SHORT): Delete. opcodes/ChangeLog: * arc-dis.c (find_format_from_table): Replace use of ARC_SHORT with arc_opcode_len. (find_format_long_instructions): Likewise. * arc-opc.c (arc_opcode_len): New function.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-arc.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index d7aa0c1..63a885b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2016-11-03 Graham Markall <graham.markall@embecosm.com>
+ * config/tc-arc.c (assemble_insn): Replace use of ARC_SHORT with
+ arc_opcode_len.
+
+2016-11-03 Graham Markall <graham.markall@embecosm.com>
+
* config/tc-arc.c (struct arc_insn): Replace short_insn flag with
len field.
(apply_fixups): Update to use len field.
diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c
index 5ced8f0..69dad38 100644
--- a/gas/config/tc-arc.c
+++ b/gas/config/tc-arc.c
@@ -3879,7 +3879,8 @@ assemble_insn (const struct arc_opcode *opcode,
break;
case O_pcl:
reloc = ARC_RELOC_TABLE (t->X_md)->reloc;
- if (ARC_SHORT (opcode->mask) || opcode->insn_class == JUMP)
+ if (arc_opcode_len (opcode) == 2
+ || opcode->insn_class == JUMP)
as_bad_where (frag_now->fr_file, frag_now->fr_line,
_("Unable to use @pcl relocation for insn %s"),
opcode->name);
@@ -4011,7 +4012,8 @@ assemble_insn (const struct arc_opcode *opcode,
insn->relax = relax_insn_p (opcode, tok, ntok, pflags, nflg);
/* Instruction length. */
- insn->len = ARC_SHORT (opcode->mask) ? 2 : 4;
+ insn->len = arc_opcode_len (opcode);
+ gas_assert (insn->len == 2 || insn->len == 4);
insn->insn = image;