/* Definitions for Altera Nios II assembler.
- Copyright (C) 2012-2014 Free Software Foundation, Inc.
+ Copyright (C) 2012-2021 Free Software Foundation, Inc.
Contributed by Nigel Gray (ngray@altera.com).
Contributed by Mentor Graphics, Inc.
separator characters are commas, brackets and space.
The instruction name is always separated from other tokens by a space
The maximum number of tokens in an instruction is 5 (the instruction name,
- 3 arguments, and a 4th string representing the expected instructin opcode
+ 3 arguments, and a 4th string representing the expected instruct in opcode
after assembly. The latter is only used when the assemble is running in
self test mode, otherwise its presence will generate an error. */
#define NIOS2_MAX_INSN_TOKENS 6
/* Processor-specific section directives. */
#define md_elf_section_letter nios2_elf_section_letter
-extern int nios2_elf_section_letter (int, char **);
+extern int nios2_elf_section_letter (int, const char **);
#define md_elf_section_flags nios2_elf_section_flags
extern flagword nios2_elf_section_flags (flagword, int, int);
#endif
#define DIFF_EXPR_OK
+/* Don't allow the generic code to convert fixups involving the
+ subtraction of a label in the current section to pc-relative if we
+ don't have the necessary pc-relative relocation. */
+#define TC_FORCE_RELOCATION_SUB_LOCAL(FIX, SEG) \
+ (!((FIX)->fx_r_type == BFD_RELOC_16 \
+ || (FIX)->fx_r_type == BFD_RELOC_NIOS2_LO16 \
+ || (FIX)->fx_r_type == BFD_RELOC_NIOS2_HIADJ16))
+
/* Nios2 ABI doesn't have 32-bit PCREL relocation, and, as relocations for
CFI information will be in section other than .text, we can't use PC-biased
relocs. */
#define tc_cfi_frame_initial_instructions nios2_frame_initial_instructions
extern void nios2_frame_initial_instructions (void);
+#define elf_tc_final_processing nios2_elf_final_processing
+extern void nios2_elf_final_processing (void);
+
#endif /* TC_NIOS2 */