[BACK]Return to tc-mep.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / external / gpl3 / binutils.old / dist / gas / config

Annotation of src/external/gpl3/binutils.old/dist/gas/config/tc-mep.h, Revision 1.3

1.1       christos    1: /* tc-mep.h -- Header file for tc-mep.c.
1.3     ! christos    2:    Copyright (C) 2001-2015 Free Software Foundation, Inc.
1.1       christos    3:
                      4:    This file is part of GAS, the GNU Assembler.
                      5:
                      6:    GAS is free software; you can redistribute it and/or modify
                      7:    it under the terms of the GNU General Public License as published by
                      8:    the Free Software Foundation; either version 3, or (at your option)
                      9:    any later version.
                     10:
                     11:    GAS is distributed in the hope that it will be useful,
                     12:    but WITHOUT ANY WARRANTY; without even the implied warranty of
                     13:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     14:    GNU General Public License for more details.
                     15:
                     16:    You should have received a copy of the GNU General Public License
                     17:    along with GAS; see the file COPYING.  If not, write to
                     18:    the Free Software Foundation, 51 Franklin Street, Fifth Floor,
                     19:    Boston, MA 02110-1301, USA. */
                     20:
                     21: #define TC_MEP
                     22:
                     23: /* Support computed relocations.  */
                     24: #define OBJ_COMPLEX_RELC
                     25:
                     26: /* Support many operands per instruction.  */
                     27: #define GAS_CGEN_MAX_FIXUPS 10
                     28:
                     29: #define LISTING_HEADER "MEP GAS "
                     30:
                     31: /* The target BFD architecture.  */
                     32: #define TARGET_ARCH bfd_arch_mep
                     33:
                     34: #define TARGET_FORMAT (target_big_endian ? "elf32-mep" : "elf32-mep-little")
                     35:
                     36: /* This is the default.  */
                     37: #define TARGET_BYTES_BIG_ENDIAN 0
                     38:
                     39: /* Permit temporary numeric labels. */
                     40: #define LOCAL_LABELS_FB 1
                     41:
                     42: /* Do not define DIFF_EXPR_OK - the MeP does not have a 32-bit PC-relative reloc.  */
                     43:
                     44: /* We don't need to handle .word strangely.  */
                     45: #define WORKING_DOT_WORD
                     46:
                     47: /* Values passed to md_apply_fix don't include the symbol value.  */
                     48: #define MD_APPLY_SYM_VALUE(FIX) 0
                     49:
                     50: #define MD_APPLY_FIX
                     51: #define md_apply_fix mep_apply_fix
                     52: extern void mep_apply_fix (struct fix *, valueT *, segT);
                     53:
                     54: /* Call md_pcrel_from_section(), not md_pcrel_from().  */
                     55: #define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC)
                     56: extern long md_pcrel_from_section (struct fix *, segT);
                     57:
                     58: #define tc_frob_file() mep_frob_file ()
                     59: extern void mep_frob_file (void);
                     60:
                     61: #define tc_fix_adjustable(fixP) mep_fix_adjustable (fixP)
                     62: extern bfd_boolean mep_fix_adjustable (struct fix *);
                     63:
                     64: /* After creating a fixup for an instruction operand, we need
                     65:    to check for HI16 relocs and queue them up for later sorting.  */
                     66: #define md_cgen_record_fixup_exp  mep_cgen_record_fixup_exp
                     67:
                     68: /* When relaxing, we need to emit various relocs we otherwise wouldn't.  */
                     69: #define TC_FORCE_RELOCATION(fix) mep_force_relocation (fix)
                     70: extern int mep_force_relocation (struct fix *);
                     71:
                     72: #define tc_gen_reloc gas_cgen_tc_gen_reloc
                     73:
                     74: extern void gas_cgen_md_operand (expressionS *);
                     75: #define md_operand(x) gas_cgen_md_operand (x)
                     76:
                     77: #define md_flush_pending_output() mep_flush_pending_output()
                     78: extern int mep_flush_pending_output(void);
                     79:
                     80: extern const struct relax_type md_relax_table[];
                     81: #define TC_GENERIC_RELAX_TABLE md_relax_table
                     82:
                     83: extern long mep_relax_frag (segT, fragS *, long);
                     84: #define md_relax_frag mep_relax_frag
                     85:
                     86: /* Account for inserting a jmp after the insn.  */
                     87: #define TC_CGEN_MAX_RELAX(insn, len) ((len) + 4)
                     88:
                     89: extern void mep_prepare_relax_scan (fragS *, offsetT *, relax_substateT);
                     90: #define md_prepare_relax_scan(FRAGP, ADDR, AIM, STATE, TYPE) \
                     91:        mep_prepare_relax_scan (FRAGP, &AIM, STATE)
                     92:
                     93: /* Support for core/vliw mode switching.  */
                     94: #define CORE 0
                     95: #define VLIW 1
                     96: #define MAX_PARALLEL_INSNS 56 /* From email from Toshiba.  */
                     97: #define VTEXT_SECTION_NAME ".vtext"
                     98:
                     99: /* Needed to process pending instructions when a label is encountered.  */
1.3     ! christos  100: #define TC_START_LABEL(STR, NUL_CHAR, NEXT_CHAR)       \
        !           101:   (NEXT_CHAR == ':' && mep_flush_pending_output ())
1.1       christos  102:
                    103: #define tc_unrecognized_line(c) mep_unrecognized_line (c)
                    104: extern int mep_unrecognized_line (int);
                    105: #define md_cleanup mep_cleanup
                    106: extern void mep_cleanup (void);
                    107:
                    108: #define md_elf_section_letter          mep_elf_section_letter
                    109: extern bfd_vma mep_elf_section_letter (int, char **);
                    110: #define md_elf_section_flags           mep_elf_section_flags
                    111: extern flagword mep_elf_section_flags  (flagword, bfd_vma, int);
                    112:
                    113: #define ELF_TC_SPECIAL_SECTIONS \
                    114:   { VTEXT_SECTION_NAME, SHT_PROGBITS, SHF_ALLOC|SHF_EXECINSTR|SHF_MEP_VLIW },
                    115:
1.3     ! christos  116: /* The values of the following enum are for use with parinsnum, which
1.1       christos  117:    is a variable in md_assemble that keeps track of whether or not the
                    118:    next instruction is expected to be the first or second instrucion in
                    119:    a parallelization group.  */
                    120: typedef enum exp_par_insn_{FIRST, SECOND} EXP_PAR_INSN;

CVSweb <webmaster@jp.NetBSD.org>