/* aarch64-gen.c -- Generate tables and routines for opcode lookup and
instruction encoding and decoding.
- Copyright (C) 2012-2015 Free Software Foundation, Inc.
+ Copyright (C) 2012-2016 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of the GNU opcodes library.
#include "getopt.h"
#include "opcode/aarch64.h"
+#define VERIFIER(x) NULL
#include "aarch64-tbl.h"
static int debug = 0;
static void __attribute__ ((format (printf, 2, 3)))
indented_print (unsigned int indent, const char *format, ...)
{
- /* 80 number of spaces pluc a NULL terminator. */
- static const char spaces[81] =
- " ";
va_list ap;
va_start (ap, format);
- assert (indent <= 80);
- printf ("%s", &spaces[80 - indent]);
+ printf ("%*s", (int) indent, "");
vprintf (format, ap);
va_end (ap);
}
find_alias_opcode (const aarch64_opcode *opcode)
{
int i;
- /* Assume maximum of 8 disassemble preference candidates. */
- const int max_num_aliases = 8;
+ /* Assume maximum of 32 disassemble preference candidates. */
+ const int max_num_aliases = 32;
const aarch64_opcode *ent;
- const aarch64_opcode *preferred[max_num_aliases];
+ const aarch64_opcode *preferred[max_num_aliases + 1];
opcode_node head, **next;
assert (opcode_has_alias (opcode));
i = 0;
+ if (opcode->name != NULL)
+ preferred[i++] = opcode;
ent = aarch64_opcode_table;
while (ent->name != NULL)
{
print_divide_result (decoder_tree);
printf ("/* This file is automatically generated by aarch64-gen. Do not edit! */\n");
- printf ("/* Copyright (C) 2012-2015 Free Software Foundation, Inc.\n\
+ printf ("/* Copyright (C) 2012-2016 Free Software Foundation, Inc.\n\
Contributed by ARM Ltd.\n\
\n\
This file is part of the GNU opcodes library.\n\