Back to index

cell-binutils  2.17cvs20070401
Classes | Defines | Enumerations | Functions | Variables
tc-sh64.h File Reference
#include "config/tc-sh.h"
#include "elf/sh.h"
#include "elf32-sh64.h"

Go to the source code of this file.

Classes

struct  sh64_segment_info_type
struct  sh64_tc_frag_data

Defines

#define TC_SH64
#define HANDLE_ALIGN(frag)   sh64_handle_align (frag)
#define MAX_MEM_FOR_RS_ALIGN_CODE   sh64_max_mem_for_rs_align_code ()
#define LISTING_HEADER
#define md_do_align(n, fill, len, max, l)   do { sh64_do_align (n, fill, len, max); goto l; } while (0)
#define TC_SEGMENT_INFO_TYPE   struct sh64_segment_info_type
#define TARGET_FORMAT   sh64_target_format ()
#define TARGET_MACH   sh64_target_mach ()
#define TC_FORCE_RELOCATION_LOCAL(FIX)
#define TC_FORCE_RELOCATION_SUB_SAME(FIX, SEC)
#define TC_VALIDATE_FIX_SUB(FIX)
#define md_parse_name(NAME, EXP, MODE, CP)   sh64_consume_datalabel (NAME, EXP, MODE, CP, operand)
#define DOLLAR_DOT
#define MD_PCREL_FROM_SECTION(FIX, SEC)   shmedia_md_pcrel_from_section (FIX, SEC)
#define tc_frob_label(sym)   do { sh_frob_label (sym); sh64_frob_label (sym); } while (0)
#define tc_symbol_new_hook(s)   sh64_frob_label (s)
#define TC_SYMFIELD_TYPE   symbolS *
#define tc_frob_symbol(symp, punt)
#define tc_adjust_symtab   sh64_adjust_symtab
#define md_flush_pending_output()   sh64_flush_pending_output ()
#define tc_frob_section(sec)   shmedia_frob_section_type (sec)
#define TC_FRAG_TYPE   struct sh64_tc_frag_data
#define TC_FRAG_INIT(FRAGP)
#define md_end()   shmedia_md_end ()
#define DWARF2_LINE_MIN_INSN_LENGTH   1
#define TC_FAKE_LABEL(NAME)   sh64_fake_label(NAME)

Enumerations

enum  sh64_isa_values { sh64_isa_unspecified, sh64_isa_shcompact, sh64_isa_shmedia, sh64_isa_sh5_guard }

Functions

void sh64_handle_align (fragS *)
int sh64_max_mem_for_rs_align_code (void)
void sh64_do_align (int, const char *, int, int)
const char * sh64_target_format (void)
int sh64_target_mach (void)
int sh64_consume_datalabel (const char *, expressionS *, enum expr_mode, char *, segT(*)(expressionS *, enum expr_mode))
valueT shmedia_md_pcrel_from_section (struct fix *, segT)
void sh64_frob_label (symbolS *)
int sh64_exclude_symbol (symbolS *)
void sh64_adjust_symtab (void)
void sh64_flush_pending_output (void)
void shmedia_frob_section_type (asection *)
void shmedia_md_end (void)
int sh64_fake_label (const char *)

Variables

fragS * sh64_last_insn_frag

Class Documentation

struct sh64_segment_info_type

Definition at line 49 of file tc-sh64.h.

Class Members
unsigned int emitted_ranges
symbolS * last_contents_mark
subsegT mode_start_subseg
symbolS * mode_start_symbol
struct sh64_tc_frag_data

Definition at line 198 of file tc-sh64.h.

Class Members
fragS * opc_frag

Define Documentation

#define DOLLAR_DOT

Definition at line 134 of file tc-sh64.h.

Definition at line 224 of file tc-sh64.h.

#define HANDLE_ALIGN (   frag)    sh64_handle_align (frag)

Definition at line 31 of file tc-sh64.h.

#define LISTING_HEADER
Value:
(target_big_endian ?                             \
     "SuperH SHcompact/SHmedia Big Endian GAS"          \
   : "SuperH SHcompact/SHmedia Little Endian GAS")

Definition at line 39 of file tc-sh64.h.

Definition at line 35 of file tc-sh64.h.

#define md_do_align (   n,
  fill,
  len,
  max,
  l 
)    do { sh64_do_align (n, fill, len, max); goto l; } while (0)

Definition at line 46 of file tc-sh64.h.

#define md_end ( )    shmedia_md_end ()

Definition at line 218 of file tc-sh64.h.

Definition at line 170 of file tc-sh64.h.

#define md_parse_name (   NAME,
  EXP,
  MODE,
  CP 
)    sh64_consume_datalabel (NAME, EXP, MODE, CP, operand)

Definition at line 127 of file tc-sh64.h.

#define MD_PCREL_FROM_SECTION (   FIX,
  SEC 
)    shmedia_md_pcrel_from_section (FIX, SEC)

Definition at line 137 of file tc-sh64.h.

Definition at line 74 of file tc-sh64.h.

#define TARGET_MACH   sh64_target_mach ()

Definition at line 77 of file tc-sh64.h.

Definition at line 167 of file tc-sh64.h.

#define TC_FAKE_LABEL (   NAME)    sh64_fake_label(NAME)

Definition at line 226 of file tc-sh64.h.

Value:
(!(FIX)->fx_pcrel                                \
   || (FIX)->fx_r_type == BFD_RELOC_32_PLT_PCREL \
   || (FIX)->fx_r_type == BFD_RELOC_SH_PLT_LOW16 \
   || (FIX)->fx_r_type == BFD_RELOC_SH_PLT_MEDLOW16     \
   || (FIX)->fx_r_type == BFD_RELOC_SH_PLT_MEDHI16      \
   || (FIX)->fx_r_type == BFD_RELOC_SH_PLT_HI16         \
   || (FIX)->fx_r_type == BFD_RELOC_32_GOT_PCREL \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOT_LOW16 \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOT_MEDLOW16     \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOT_MEDHI16      \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOT_HI16         \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOT10BY4         \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOT10BY8         \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT32         \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT_LOW16     \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT_MEDLOW16  \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT_MEDHI16   \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT_HI16      \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT10BY4      \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPLT10BY8      \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC            \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC_LOW16      \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC_MEDLOW16   \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC_MEDHI16    \
   || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC_HI16       \
   || TC_FORCE_RELOCATION (FIX))

Definition at line 81 of file tc-sh64.h.

#define TC_FORCE_RELOCATION_SUB_SAME (   FIX,
  SEC 
)
Value:
(! SEG_NORMAL (SEC)                              \
   || TC_FORCE_RELOCATION (FIX)                         \
   || (sh_relax && SWITCH_TABLE (FIX))                  \
   || *symbol_get_tc ((FIX)->fx_addsy) != NULL)

Definition at line 110 of file tc-sh64.h.

#define TC_FRAG_INIT (   FRAGP)
Value:
do                                                      \
   {                                                    \
     (FRAGP)->tc_frag_data.opc_frag = sh64_last_insn_frag;     \
     (FRAGP)->tc_frag_data.isa = sh64_isa_mode;                \
   }                                                    \
 while (0)

Definition at line 206 of file tc-sh64.h.

Definition at line 185 of file tc-sh64.h.

#define tc_frob_label (   sym)    do { sh_frob_label (sym); sh64_frob_label (sym); } while (0)

Definition at line 147 of file tc-sh64.h.

#define tc_frob_section (   sec)    shmedia_frob_section_type (sec)

Definition at line 175 of file tc-sh64.h.

#define tc_frob_symbol (   symp,
  punt 
)
Value:
do                                        \
   {                                      \
     punt = sh64_exclude_symbol (symp);          \
   }                                      \
 while (0)

Definition at line 157 of file tc-sh64.h.

Definition at line 71 of file tc-sh64.h.

#define TC_SH64

Definition at line 22 of file tc-sh64.h.

#define tc_symbol_new_hook (   s)    sh64_frob_label (s)

Definition at line 150 of file tc-sh64.h.

#define TC_SYMFIELD_TYPE   symbolS *

Definition at line 155 of file tc-sh64.h.

#define TC_VALIDATE_FIX_SUB (   FIX)
Value:
((FIX)->fx_r_type == BFD_RELOC_32_PLT_PCREL             \
   || (sh_relax && SWITCH_TABLE (FIX))                  \
   || *symbol_get_tc ((FIX)->fx_addsy) != NULL)

Definition at line 118 of file tc-sh64.h.


Enumeration Type Documentation

Enumerator:
sh64_isa_unspecified 
sh64_isa_shcompact 
sh64_isa_shmedia 
sh64_isa_sh5_guard 

Definition at line 187 of file tc-sh64.h.

 {
   sh64_isa_unspecified,
   sh64_isa_shcompact,
   sh64_isa_shmedia,

   /* Special guard value used in contexts when we don't know which ISA it
      is, just that it's specified (not sh64_isa_unspecified).  */
   sh64_isa_sh5_guard
 };

Function Documentation

void sh64_adjust_symtab ( void  )
int sh64_consume_datalabel ( const char *  ,
expressionS ,
enum  expr_mode,
char *  ,
segT(*)(expressionS *, enum expr_mode  
)
void sh64_do_align ( int  ,
const char *  ,
int  ,
int   
)
int sh64_exclude_symbol ( symbolS *  )
int sh64_fake_label ( const char *  )
void sh64_flush_pending_output ( void  )
void sh64_frob_label ( symbolS *  )
void sh64_handle_align ( fragS *  )
const char* sh64_target_format ( void  )
int sh64_target_mach ( void  )
void shmedia_md_end ( void  )

Variable Documentation

Definition at line 71 of file tc-sh64.c.