Back to index

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

Go to the source code of this file.

Defines

#define TC_AVR
#define TARGET_FORMAT   "elf32-avr"
#define TARGET_ARCH   bfd_arch_avr
#define TARGET_MACH   0
#define TARGET_BYTES_BIG_ENDIAN   0
#define ONLY_STANDARD_ESCAPES
#define md_operand(x)
#define TC_PARSE_CONS_EXPRESSION(EXPR, N)   avr_parse_cons_expression (EXPR, N)
#define TC_CONS_FIX_NEW(FRAG, WHERE, N, EXP)   avr_cons_fix_new (FRAG, WHERE, N, EXP)
#define md_number_to_chars   number_to_chars_littleendian
#define WORKING_DOT_WORD
#define EXTERN_FORCE_RELOC   0
#define MD_APPLY_SYM_VALUE(FIX)   0
#define MD_PCREL_FROM_SECTION(FIX, SEC)   md_pcrel_from_section (FIX, SEC)
#define LISTING_WORD_SIZE   2
#define LEX_DOLLAR   0
#define TC_IMPLICIT_LCOMM_ALIGNMENT(SIZE, P2VAR)   (P2VAR) = 0
#define TC_VALIDATE_FIX(FIXP, SEG, SKIP)
#define TC_FX_SIZE_SLACK(FIX)   2

Functions

void avr_parse_cons_expression (expressionS *, int)
void avr_cons_fix_new (fragS *, int, int, expressionS *)
long md_pcrel_from_section (struct fix *, segT)

Define Documentation

#define EXTERN_FORCE_RELOC   0

Definition at line 94 of file tc-avr.h.

#define LEX_DOLLAR   0

Definition at line 114 of file tc-avr.h.

#define LISTING_WORD_SIZE   2

Definition at line 111 of file tc-avr.h.

#define MD_APPLY_SYM_VALUE (   FIX)    0

Definition at line 97 of file tc-avr.h.

Definition at line 70 of file tc-avr.h.

#define md_operand (   x)

Definition at line 52 of file tc-avr.h.

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

Definition at line 104 of file tc-avr.h.

Definition at line 47 of file tc-avr.h.

#define TARGET_ARCH   bfd_arch_avr

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

#define TARGET_BYTES_BIG_ENDIAN   0

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

#define TARGET_FORMAT   "elf32-avr"

Definition at line 32 of file tc-avr.h.

#define TARGET_MACH   0

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

#define TC_AVR

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

#define TC_CONS_FIX_NEW (   FRAG,
  WHERE,
  N,
  EXP 
)    avr_cons_fix_new (FRAG, WHERE, N, EXP)

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

#define TC_FX_SIZE_SLACK (   FIX)    2

Definition at line 149 of file tc-avr.h.

#define TC_IMPLICIT_LCOMM_ALIGNMENT (   SIZE,
  P2VAR 
)    (P2VAR) = 0

Definition at line 123 of file tc-avr.h.

#define TC_PARSE_CONS_EXPRESSION (   EXPR,
  N 
)    avr_parse_cons_expression (EXPR, N)

Definition at line 57 of file tc-avr.h.

#define TC_VALIDATE_FIX (   FIXP,
  SEG,
  SKIP 
)
Value:
if (   (FIXP->fx_r_type == BFD_RELOC_AVR_7_PCREL           \
       || FIXP->fx_r_type == BFD_RELOC_AVR_13_PCREL          \
       || FIXP->fx_r_type == BFD_RELOC_AVR_LO8_LDI_PM        \
       || FIXP->fx_r_type == BFD_RELOC_AVR_LO8_LDI_GS        \
       || FIXP->fx_r_type == BFD_RELOC_AVR_HI8_LDI_PM        \
       || FIXP->fx_r_type == BFD_RELOC_AVR_HI8_LDI_GS        \
       || FIXP->fx_r_type == BFD_RELOC_AVR_HH8_LDI_PM        \
       || FIXP->fx_r_type == BFD_RELOC_AVR_LO8_LDI_PM_NEG    \
       || FIXP->fx_r_type == BFD_RELOC_AVR_HI8_LDI_PM_NEG    \
       || FIXP->fx_r_type == BFD_RELOC_AVR_HH8_LDI_PM_NEG    \
       || FIXP->fx_r_type == BFD_RELOC_AVR_16_PM)            \
      && (FIXP->fx_addsy))                             \
    {                                                        \
      goto SKIP;                                             \
   }

Definition at line 131 of file tc-avr.h.

Definition at line 84 of file tc-avr.h.


Function Documentation

void avr_cons_fix_new ( fragS *  ,
int  ,
int  ,
expressionS  
)

Definition at line 1392 of file tc-avr.c.

{
  if (exp_mod_pm == 0)
    {
      if (nbytes == 2)
       fix_new_exp (frag, where, nbytes, exp, FALSE, BFD_RELOC_16);
      else if (nbytes == 4)
       fix_new_exp (frag, where, nbytes, exp, FALSE, BFD_RELOC_32);
      else
       as_bad (_("illegal %srelocation size: %d"), "", nbytes);
    }
  else
    {
      if (nbytes == 2)
       fix_new_exp (frag, where, nbytes, exp, FALSE, BFD_RELOC_AVR_16_PM);
      else
       as_bad (_("illegal %srelocation size: %d"), "`pm' ", nbytes);
      exp_mod_pm = 0;
    }
}

Here is the call graph for this function:

Definition at line 1347 of file tc-avr.c.

{
  char *tmp;

  exp_mod_pm = 0;

  tmp = input_line_pointer = skip_space (input_line_pointer);

  if (nbytes == 2)
    {
      char *pm_name1 = "pm";
      char *pm_name2 = "gs";
      int len = strlen (pm_name1);
      /* len must be the same for both pm identifiers.  */

      if (strncasecmp (input_line_pointer, pm_name1, len) == 0
          || strncasecmp (input_line_pointer, pm_name2, len) == 0)
       {
         input_line_pointer = skip_space (input_line_pointer + len);

         if (*input_line_pointer == '(')
           {
             input_line_pointer = skip_space (input_line_pointer + 1);
             exp_mod_pm = 1;
             expression (exp);

             if (*input_line_pointer == ')')
              ++input_line_pointer;
             else
              {
                as_bad (_("`)' required"));
                exp_mod_pm = 0;
              }

             return;
           }

         input_line_pointer = tmp;
       }
    }

  expression (exp);
}

Here is the call graph for this function: