Back to index

cell-binutils  2.17cvs20070401
tc-v850.h
Go to the documentation of this file.
00001 /* tc-v850.h -- Header file for tc-v850.c.
00002    Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2005
00003    Free Software Foundation, Inc.
00004 
00005    This file is part of GAS, the GNU Assembler.
00006 
00007    GAS is free software; you can redistribute it and/or modify
00008    it under the terms of the GNU General Public License as published by
00009    the Free Software Foundation; either version 2, or (at your option)
00010    any later version.
00011 
00012    GAS is distributed in the hope that it will be useful,
00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015    GNU General Public License for more details.
00016 
00017    You should have received a copy of the GNU General Public License
00018    along with GAS; see the file COPYING.  If not, write to the Free
00019    Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
00020    02110-1301, USA.  */
00021 
00022 #define TC_V850
00023 
00024 #include "elf/v850.h"
00025 
00026 #define TARGET_BYTES_BIG_ENDIAN 0
00027 
00028 /* The target BFD architecture.  */
00029 #define TARGET_ARCH         bfd_arch_v850
00030 
00031 /* The target BFD format.  */
00032 #define TARGET_FORMAT              "elf32-v850"
00033 
00034 #define md_operand(x)
00035 
00036 #define tc_fix_adjustable(FIX) v850_fix_adjustable (FIX)
00037 extern bfd_boolean v850_fix_adjustable (struct fix *);
00038 
00039 #define TC_FORCE_RELOCATION(FIX) v850_force_relocation(FIX)
00040 extern int v850_force_relocation (struct fix *);
00041 
00042 #ifdef OBJ_ELF
00043 /* Values passed to md_apply_fix don't include the symbol value.  */
00044 #define MD_APPLY_SYM_VALUE(FIX) 0
00045 #endif
00046 
00047 /* Permit temporary numeric labels.  */
00048 #define LOCAL_LABELS_FB 1
00049 
00050 #define DIFF_EXPR_OK        /* foo-. gets turned into PC relative relocs.  */
00051 
00052 /* We don't need to handle .word strangely.  */
00053 #define WORKING_DOT_WORD
00054 
00055 #define md_number_to_chars number_to_chars_littleendian
00056 
00057 /* We need to handle lo(), hi(), etc etc in .hword, .word, etc
00058    directives, so we have to parse "cons" expressions ourselves.  */
00059 #define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) parse_cons_expression_v850 (EXP)
00060 extern void parse_cons_expression_v850 (expressionS *);
00061 
00062 #define TC_CONS_FIX_NEW cons_fix_new_v850
00063 extern void cons_fix_new_v850 (fragS *, int, int, expressionS *);
00064 
00065 #define TC_GENERIC_RELAX_TABLE md_relax_table
00066 extern const struct relax_type md_relax_table[];
00067 
00068 /* When relaxing, we need to generate
00069    relocations for alignment directives.  */
00070 #define HANDLE_ALIGN(frag) v850_handle_align (frag)
00071 extern void v850_handle_align (fragS *);
00072 
00073 #define MD_PCREL_FROM_SECTION(FIX, SEC) v850_pcrel_from_section (FIX, SEC)
00074 extern long v850_pcrel_from_section (struct fix *, asection *);
00075 
00076 #define DWARF2_LINE_MIN_INSN_LENGTH 2
00077 
00078 /* We need to record the operand involved when a pseudo-reloc is
00079    processed so that the resulting value can be inserted correctly.  */
00080 #define TC_FIX_TYPE             void *
00081 #define TC_INIT_FIX_DATA(fixP)  (fixP)->tc_fix_data = NULL