Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
+#include "opcode/arc.h"
/* By convention, you should define this macro in the `.h' file. For
example, `tc-m68k.h' defines `TC_M68K'. You might have to use this
/* The symbol is a ZOL's end loop label. */
#define ARC_FLAG_ZOL (1 << 0)
+/* The symbol is an AUX register. */
+#define ARC_FLAG_AUX (1 << 1)
/* We use this hook to check the validity of the last to instructions
of a ZOL. */
/* Adjust non PC-rel values at relaxation time. */
#define TC_PCREL_ADJUST(F) arc_pcrel_adjust (F)
+/* Adjust symbol table. */
+#define obj_adjust_symtab() arc_adjust_symtab ()
+
+extern void arc_adjust_symtab (void);
extern int arc_pcrel_adjust (fragS *);
extern bfd_boolean arc_parse_name (const char *, struct expressionS *);
extern int tc_arc_fix_adjustable (struct fix *);
#define NOP_OPCODE_S 0x000078E0
#define NOP_OPCODE_L 0x264A7000 /* mov 0,0. */
-#define MAX_FLAG_NAME_LENGHT 3
+#define MAX_FLAG_NAME_LENGTH 7
struct arc_flags
{
/* Name of the parsed flag. */
- char name[MAX_FLAG_NAME_LENGHT + 1];
+ char name[MAX_FLAG_NAME_LENGTH + 1];
- /* The code of the parsed flag. Valid when is not zero. */
- unsigned char code;
+ /* Pointer to arc flags. */
+ const struct arc_flag_operand *flgp;
};
-#ifndef MAX_INSN_ARGS
-#define MAX_INSN_ARGS 6
-#endif
-
-#ifndef MAX_INSN_FLGS
-#define MAX_INSN_FLGS 3
-#endif
-
extern const relax_typeS md_relax_table[];
#define TC_GENERIC_RELAX_TABLE md_relax_table