binutils-gdb/gas/config/tc-e2k.h

113 lines
3.5 KiB
C

/* tc-e2k.h - Macros and type defines for the E2k.
This file is part of GAS, the GNU Assembler.
GAS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2,
or (at your option) any later version.
GAS is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
the GNU General Public License for more details.
You should have received a copy of the GNU General Public
License along with GAS; see the file COPYING. If not, write
to the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef TC_E2K
#define TC_E2K 1
#define LEX_HASH (LEX_NAME|LEX_BEGIN_NAME) /* allow `#' inside symbol name */
extern const char *e2k_target_format (void);
#define TARGET_FORMAT e2k_target_format ()
#define TARGET_ARCH bfd_arch_e2k
extern unsigned long e2k_mach (void);
#define TARGET_MACH (e2k_mach ())
extern void e2k_elf_final_processing (void);
#define elf_tc_final_processing e2k_elf_final_processing
#define TARGET_BYTES_BIG_ENDIAN 0
#define MD_APPLY_FIX3
#define tc_fix_adjustable(X) tc_e2k_fix_adjustable(X)
extern int tc_e2k_fix_adjustable (struct fix *);
/* Values passed to md_apply_fix don't include the symbol value. */
#define MD_APPLY_SYM_VALUE(FIX) 0
#define md_convert_frag(b,s,f) \
as_fatal (_("e2k convert_frag\n"))
#define md_estimate_size_before_relax(f,s) \
(as_fatal(_("estimate_size_before_relax called")), 1)
#define md_start_line_hook() e2k_start_line_hook (input_line_pointer[-1])
#define md_cleanup() e2k_cleanup_hook ();
#define md_number_to_chars number_to_chars_littleendian
extern void e2k_start_line_hook (char);
extern void e2k_cleanup_hook (void);
extern void e2k_adjust_symtab (void);
#define tc_adjust_symtab() e2k_adjust_symtab ()
extern char *e2k_canonicalize_symbol_name (char *);
#define tc_canonicalize_symbol_name(s) e2k_canonicalize_symbol_name (s)
#define tc_init_after_args() e2k_init ()
extern void e2k_init (void);
extern int e2k_parse_name (char *, expressionS *, char *);
#define md_parse_name(name, e, m, nextP) e2k_parse_name (name, e, nextP)
extern void e2k_cons_fix_new (struct frag *, int,
int, struct expressionS *);
#define TC_CONS_FIX_NEW(FRAG, WHERE, NBYTES, EXP, RELOC) \
e2k_cons_fix_new (FRAG, WHERE, NBYTES, EXP)
/* This is probably required in order to make arithmetic on symbols coming
from different sections. Isn't it? */
#define DIFF_EXPR_OK 1
extern void e2k_end (void);
#define md_end() e2k_end ()
/* We want .cfi_* pseudo-ops for generating unwind info. */
#define TARGET_USE_CFIPOP 1
#define DWARF2_CIE_DATA_ALIGNMENT (-8)
#define DWARF2_DEFAULT_RETURN_COLUMN 0
/* This lets one ensure that `.eh_frame' is writable in PM. */
#define DWARF2_EH_FRAME_READ_ONLY e2k_dwarf2_eh_frame_read_only ()
extern int e2k_dwarf2_eh_frame_read_only (void);
#define md_register_arithmetic 0
#define tc_allow_U_suffix 0
/* Note that these are the powers of 2. */
#define EH_FRAME_ALIGNMENT \
(e2k_eh_frame_alignment () == 4 \
? 4 : (bfd_get_arch_size (stdoutput) == 64 ? 3 : 2))
extern int e2k_eh_frame_alignment (void);
#define tc_cfi_reloc_for_encoding e2k_cfi_reloc_for_encoding
extern bfd_reloc_code_real_type e2k_cfi_reloc_for_encoding (int encoding);
#endif /* TC_E2K */