Back to index

cell-binutils  2.17cvs20070401
Defines | Functions
tc-xstormy16.h File Reference

Go to the source code of this file.

Defines

#define TC_XSTORMY16
#define LISTING_HEADER   "XSTORMY16 GAS "
#define TARGET_ARCH   bfd_arch_xstormy16
#define TARGET_FORMAT   "elf32-xstormy16"
#define TARGET_BYTES_BIG_ENDIAN   0
#define LOCAL_LABELS_FB   1
#define DIFF_EXPR_OK   /* foo-. gets turned into PC relative relocs. */
#define WORKING_DOT_WORD
#define MD_APPLY_SYM_VALUE(FIX)   0
#define md_apply_fix   xstormy16_md_apply_fix
#define tc_fix_adjustable(FIX)   xstormy16_fix_adjustable (FIX)
#define TC_FORCE_RELOCATION(fix)   xstormy16_force_relocation (fix)
#define TC_HANDLES_FX_DONE
#define tc_gen_reloc   gas_cgen_tc_gen_reloc
#define MD_PCREL_FROM_SECTION(FIX, SEC)   md_pcrel_from_section (FIX, SEC)
#define TC_CONS_FIX_NEW   xstormy16_cons_fix_new
#define md_cgen_record_fixup_exp   xstormy16_cgen_record_fixup_exp
#define DWARF2_LINE_MIN_INSN_LENGTH   2
#define TC_FX_SIZE_SLACK(FIX)   2

Functions

bfd_boolean xstormy16_fix_adjustable (struct fix *)
int xstormy16_force_relocation (struct fix *)
long md_pcrel_from_section (struct fix *, segT)
void xstormy16_cons_fix_new (fragS *f, int, int, expressionS *)

Define Documentation

#define DIFF_EXPR_OK   /* foo-. gets turned into PC relative relocs. */

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

Definition at line 65 of file tc-xstormy16.h.

#define LISTING_HEADER   "XSTORMY16 GAS "

Definition at line 23 of file tc-xstormy16.h.

#define LOCAL_LABELS_FB   1

Definition at line 33 of file tc-xstormy16.h.

Definition at line 43 of file tc-xstormy16.h.

#define MD_APPLY_SYM_VALUE (   FIX)    0

Definition at line 41 of file tc-xstormy16.h.

Definition at line 62 of file tc-xstormy16.h.

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

Definition at line 56 of file tc-xstormy16.h.

Definition at line 26 of file tc-xstormy16.h.

#define TARGET_BYTES_BIG_ENDIAN   0

Definition at line 30 of file tc-xstormy16.h.

#define TARGET_FORMAT   "elf32-xstormy16"

Definition at line 28 of file tc-xstormy16.h.

Definition at line 59 of file tc-xstormy16.h.

Definition at line 45 of file tc-xstormy16.h.

Definition at line 48 of file tc-xstormy16.h.

#define TC_FX_SIZE_SLACK (   FIX)    2

Definition at line 68 of file tc-xstormy16.h.

Definition at line 53 of file tc-xstormy16.h.

Definition at line 51 of file tc-xstormy16.h.

#define TC_XSTORMY16

Definition at line 21 of file tc-xstormy16.h.

Definition at line 38 of file tc-xstormy16.h.


Function Documentation

void xstormy16_cons_fix_new ( fragS *  f,
int  ,
int  ,
expressionS  
)

Definition at line 194 of file tc-xstormy16.c.

{
  bfd_reloc_code_real_type code;
  fixS *fix;

  if (exp->X_op == O_fptr_symbol)
    {
      switch (nbytes)
       {
       case 4:
         /* This can happen when gcc is generating debug output.
            For example it can create a stab with the address of
            a function:
            
              .stabs "foo:F(0,21)",36,0,0,@fptr(foo)
 
            Since this does not involve switching code pages, we
            just allow the reloc to be generated without any
            @fptr behaviour.  */
         exp->X_op = O_symbol;
         code = BFD_RELOC_32;
         break;

       case 2:
         exp->X_op = O_symbol;
         code = BFD_RELOC_XSTORMY16_FPTR16;
         break;

       default:
         as_bad ("unsupported fptr fixup size %d", nbytes);
         return;
       }
    }
  else if (nbytes == 1)
    code = BFD_RELOC_8;
  else if (nbytes == 2)
    code = BFD_RELOC_16;
  else if (nbytes == 4)
    code = BFD_RELOC_32;
  else
    {
      as_bad ("unsupported fixup size %d", nbytes);
      return;
    }

  fix = fix_new_exp (f, where, nbytes, exp, 0, code);
}

Here is the call graph for this function: