osprey/cygnus/bfd/coff-arm.c File Reference

#include "bfd.h"
#include "sysdep.h"
#include "libbfd.h"
#include "coff/arm.h"
#include "coff/internal.h"
#include "libcoff.h"
#include "coffcode.h"
#include "coff/pe.h"

Include dependency graph for coff-arm.c:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Types

type  coff_arm_link_hash_table

Defines

#define APCS_26_FLAG(abfd)   (coff_data (abfd)->flags & F_APCS_26)
#define APCS_FLOAT_FLAG(abfd)   (coff_data (abfd)->flags & F_APCS_FLOAT)
#define PIC_FLAG(abfd)   (coff_data (abfd)->flags & F_PIC)
#define APCS_SET(abfd)   (coff_data (abfd)->flags & F_APCS_SET)
#define SET_APCS_FLAGS(abfd, flgs)
#define INTERWORK_FLAG(abfd)   (coff_data (abfd)->flags & F_INTERWORK)
#define INTERWORK_SET(abfd)   (coff_data (abfd)->flags & F_INTERWORK_SET)
#define SET_INTERWORK_FLAG(abfd, flg)
#define NUM_ELEM(a)   ((sizeof (a)) / sizeof ((a)[0]))
#define THUMB2ARM_GLUE_SECTION_NAME   ".glue_7t"
#define THUMB2ARM_GLUE_ENTRY_NAME   "__%s_from_thumb"
#define ARM2THUMB_GLUE_SECTION_NAME   ".glue_7"
#define ARM2THUMB_GLUE_ENTRY_NAME   "__%s_from_arm"
#define DOIT(x)
#define TARGET_UNDERSCORE   '_'
#define PCRELOFFSET   TRUE
#define ARM_8   0
#define ARM_16   1
#define ARM_32   2
#define ARM_26   3
#define ARM_DISP8   4
#define ARM_DISP16   5
#define ARM_DISP32   6
#define ARM_26D   7
#define ARM_NEG16   9
#define ARM_NEG32   10
#define ARM_RVA32   11
#define ARM_THUMB9   12
#define ARM_THUMB12   13
#define ARM_THUMB23   14
#define NUM_RELOCS   NUM_ELEM (aoutarm_std_reloc_howto)
#define RTYPE2HOWTO(cache_ptr, dst)
#define coff_rtype_to_howto   coff_arm_rtype_to_howto
#define ASTD(i, j)   case i: return aoutarm_std_reloc_howto + j
#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER   (2)
#define COFF_PAGE_SIZE   0x1000
#define SELECT_RELOC(x, howto)   { x.r_type = howto->type; }
#define BADMAG(x)   ARMBADMAG(x)
#define ARM   1
#define SWAP_IN_RELOC_OFFSET   H_GET_32
#define SWAP_OUT_RELOC_OFFSET   H_PUT_32
#define coff_arm_hash_table(info)   ((struct coff_arm_link_hash_table *) ((info)->hash))
#define LOW_HI_ORDER   0xF800F000
#define HI_LOW_ORDER   0xF000F800
#define ARM2THUMB_GLUE_SIZE   12
#define THUMB2ARM_GLUE_SIZE   (globals->support_old_code ? 20 : 8)
#define CHANGE_TO_ARM   "__%s_change_to_arm"
#define BACK_FROM_ARM   "__%s_back_from_arm"
#define coff_bfd_reloc_type_lookup   coff_arm_reloc_type_lookup
#define coff_relocate_section   coff_arm_relocate_section
#define coff_bfd_is_local_label_name   coff_arm_is_local_label_name
#define coff_adjust_symndx   coff_arm_adjust_symndx
#define coff_link_output_has_begun   coff_arm_link_output_has_begun
#define coff_final_link_postscript   coff_arm_final_link_postscript
#define coff_bfd_merge_private_bfd_data   coff_arm_merge_private_bfd_data
#define coff_bfd_print_private_bfd_data   coff_arm_print_private_bfd_data
#define coff_bfd_set_private_flags   _bfd_coff_arm_set_private_flags
#define coff_bfd_copy_private_bfd_data   coff_arm_copy_private_bfd_data
#define coff_bfd_link_hash_table_create   coff_arm_link_hash_table_create
#define LOCAL_LABEL_PREFIX   ""
#define USER_LABEL_PREFIX   "_"
#define TARGET_LITTLE_SYM   armcoff_little_vec
#define TARGET_LITTLE_NAME   "coff-arm-little"
#define TARGET_BIG_SYM   armcoff_big_vec
#define TARGET_BIG_NAME   "coff-arm-big"
#define EXTRA_S_FLAGS   SEC_CODE

Typedefs

typedef unsigned long int insn32
typedef unsigned short int insn16

Enumerations

enum  thumb_pcrel_branchtype { bunknown, b9, b12, b23 }

Functions/Subroutines

static bfd_boolean
coff_arm_relocate_section 
PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **))
static bfd_reloc_status_type
aoutarm_fix_pcrel_26_done 
PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **))
static insn32 insert_thumb_branch PARAMS ((insn32, int))
static bfd_boolean
coff_arm_adjust_symndx 
PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, struct internal_reloc *, bfd_boolean *))
static reloc_howto_type
*coff_arm_rtype_to_howto 
PARAMS ((bfd *, asection *, struct internal_reloc *, struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *))
static bfd_reloc_status_type
coff_thumb_pcrel_common 
PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **, thumb_pcrel_branchtype))
static struct
reloc_howto_struct
*coff_arm_reloc_type_lookup 
PARAMS ((bfd *, bfd_reloc_code_real_type))
static struct
bfd_link_hash_table
*coff_arm_link_hash_table_create 
PARAMS ((bfd *))
static struct
coff_link_hash_entry
*find_thumb_glue 
PARAMS ((struct bfd_link_info *, const char *, bfd *))
static void
record_arm_to_thumb_glue 
PARAMS ((struct bfd_link_info *, struct coff_link_hash_entry *))
static bfd_boolean
coff_arm_merge_private_bfd_data 
PARAMS ((bfd *, bfd *))
static bfd_boolean
coff_arm_print_private_bfd_data 
PARAMS ((bfd *, PTR))
static bfd_boolean
_bfd_coff_arm_set_private_flags 
PARAMS ((bfd *, flagword))
static bfd_boolean
coff_arm_is_local_label_name 
PARAMS ((bfd *, const char *))
static bfd_boolean
coff_arm_link_output_has_begun 
PARAMS ((bfd *, struct coff_final_link_info *))
static void
arm_emit_base_file_entry 
PARAMS ((struct bfd_link_info *, bfd *, asection *, bfd_vma))
static bfd_reloc_status_type coff_arm_reloc (bfd *abfd, arelent *reloc_entry, symbol, PTR data, input_section, bfd *output_bfd, error_message)
static reloc_howto_typecoff_arm_rtype_to_howto (abfd, asection *sec, struct internal_reloc *rel, h, sym, bfd_vma *addendp)
static bfd_reloc_status_type aoutarm_fix_pcrel_26_done (abfd, reloc_entry, symbol, data, input_section, output_bfd, error_message)
static bfd_reloc_status_type aoutarm_fix_pcrel_26 (bfd *abfd, arelent *reloc_entry, asymbol *symbol, PTR data, asection *input_section, bfd *output_bfd, error_message)
static bfd_reloc_status_type coff_thumb_pcrel_common (bfd *abfd, arelent *reloc_entry, asymbol *symbol, PTR data, asection *input_section, bfd *output_bfd, error_message, thumb_pcrel_branchtype btype)
static bfd_reloc_status_type coff_thumb_pcrel_23 (bfd *abfd, arelent *reloc_entry, asymbol *symbol, PTR data, asection *input_section, bfd *output_bfd, char **error_message)
static bfd_reloc_status_type coff_thumb_pcrel_9 (bfd *abfd, arelent *reloc_entry, asymbol *symbol, PTR data, asection *input_section, bfd *output_bfd, char **error_message)
static bfd_reloc_status_type coff_thumb_pcrel_12 (bfd *abfd, arelent *reloc_entry, asymbol *symbol, PTR data, asection *input_section, bfd *output_bfd, char **error_message)
static struct reloc_howto_structcoff_arm_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
static struct bfd_link_hash_tablecoff_arm_link_hash_table_create (bfd *abfd)
static void arm_emit_base_file_entry (struct bfd_link_info *info, bfd *output_bfd, asection *input_section, bfd_vma reloc_offset)
static insn32 insert_thumb_branch (insn32 br_insn, int rel_off)
static struct
coff_link_hash_entry
find_thumb_glue (struct bfd_link_info *info, const char *name, bfd *input_bfd)
static struct
coff_link_hash_entry
find_arm_glue (struct bfd_link_info *info, const char *name, bfd *input_bfd)
static bfd_boolean coff_arm_relocate_section (bfd *output_bfd, struct bfd_link_info *info, bfd *input_bfd, asection *input_section, bfd_byte *contents, struct internal_reloc *relocs, struct internal_syment *syms, asection **sections)
bfd_boolean bfd_arm_allocate_interworking_sections (struct bfd_link_info *info)
static void record_arm_to_thumb_glue (struct bfd_link_info *info, struct coff_link_hash_entry *h)
static void record_thumb_to_arm_glue (struct bfd_link_info *info, struct coff_link_hash_entry *h)
bfd_boolean bfd_arm_get_bfd_for_interworking (bfd *abfd, struct bfd_link_info *info)
bfd_boolean bfd_arm_process_before_allocation (bfd *abfd, struct bfd_link_info *info, int support_old_code)
static bfd_boolean coff_arm_adjust_symndx (obfd, info, bfd *ibfd, asection *sec, struct internal_reloc *irel, bfd_boolean *adjustedp)
static bfd_boolean coff_arm_merge_private_bfd_data (bfd *ibfd, bfd *obfd)
static bfd_boolean coff_arm_print_private_bfd_data (bfd *abfd, PTR ptr)
static bfd_boolean _bfd_coff_arm_set_private_flags (bfd *abfd, flagword flags)
static bfd_boolean coff_arm_copy_private_bfd_data (bfd *src, bfd *dest)
static bfd_boolean coff_arm_is_local_label_name (abfd, const char *name)
static bfd_boolean coff_arm_link_output_has_begun (bfd *sub, struct coff_final_link_info *info)
static bfd_boolean coff_arm_final_link_postscript (abfd, struct coff_final_link_info *pfinfo)

Variables

static reloc_howto_type aoutarm_std_reloc_howto []
static const insn32 a2t1_ldr_insn = 0xe59fc000
static const insn32 a2t2_bx_r12_insn = 0xe12fff1c
static const insn32 a2t3_func_addr_insn = 0x00000001
static const insn16 t2a1_bx_pc_insn = 0x4778
static const insn16 t2a2_noop_insn = 0x46c0
static const insn32 t2a3_b_insn = 0xea000000
static const insn16 t2a1_push_insn = 0xb540
static const insn16 t2a2_ldr_insn = 0x4e03
static const insn16 t2a3_mov_insn = 0x46fe
static const insn16 t2a4_bx_insn = 0x4730
static const insn32 t2a5_pop_insn = 0xe8bd4040
static const insn32 t2a6_bx_insn = 0xe12fff1e
const bfd_target TARGET_BIG_SYM


Define Documentation

#define APCS_26_FLAG ( abfd   )     (coff_data (abfd)->flags & F_APCS_26)

#define APCS_FLOAT_FLAG ( abfd   )     (coff_data (abfd)->flags & F_APCS_FLOAT)

#define APCS_SET ( abfd   )     (coff_data (abfd)->flags & F_APCS_SET)

#define ARM   1

Definition at line 911 of file coff-arm.c.

#define ARM2THUMB_GLUE_ENTRY_NAME   "__%s_from_arm"

Definition at line 158 of file coff-arm.c.

Referenced by find_arm_glue(), and record_arm_to_thumb_glue().

#define ARM2THUMB_GLUE_SECTION_NAME   ".glue_7"

#define ARM2THUMB_GLUE_SIZE   12

Definition at line 1119 of file coff-arm.c.

Referenced by record_arm_to_thumb_glue().

#define ARM_16   1

Definition at line 237 of file coff-arm.c.

Referenced by coff_arm_reloc_type_lookup().

#define ARM_26   3

#define ARM_26D   7

#define ARM_32   2

Definition at line 238 of file coff-arm.c.

Referenced by coff_arm_reloc_type_lookup(), and coff_arm_relocate_section().

#define ARM_8   0

Definition at line 236 of file coff-arm.c.

Referenced by coff_arm_reloc_type_lookup().

#define ARM_DISP16   5

Definition at line 241 of file coff-arm.c.

Referenced by coff_arm_reloc_type_lookup().

#define ARM_DISP32   6

Definition at line 242 of file coff-arm.c.

Referenced by coff_arm_reloc_type_lookup().

#define ARM_DISP8   4

Definition at line 240 of file coff-arm.c.

Referenced by coff_arm_reloc_type_lookup().

#define ARM_NEG16   9

Definition at line 245 of file coff-arm.c.

#define ARM_NEG32   10

Definition at line 246 of file coff-arm.c.

#define ARM_RVA32   11

#define ARM_THUMB12   13

Definition at line 249 of file coff-arm.c.

Referenced by coff_arm_reloc_type_lookup().

#define ARM_THUMB23   14

#define ARM_THUMB9   12

Definition at line 248 of file coff-arm.c.

Referenced by coff_arm_reloc_type_lookup().

#define ASTD ( i,
 )     case i: return aoutarm_std_reloc_howto + j

#define BACK_FROM_ARM   "__%s_back_from_arm"

#define BADMAG (  )     ARMBADMAG(x)

Definition at line 910 of file coff-arm.c.

#define CHANGE_TO_ARM   "__%s_change_to_arm"

#define coff_adjust_symndx   coff_arm_adjust_symndx

Definition at line 2174 of file coff-arm.c.

#define coff_arm_hash_table ( info   )     ((struct coff_arm_link_hash_table *) ((info)->hash))

#define coff_bfd_copy_private_bfd_data   coff_arm_copy_private_bfd_data

Definition at line 2180 of file coff-arm.c.

#define coff_bfd_is_local_label_name   coff_arm_is_local_label_name

Definition at line 2173 of file coff-arm.c.

#define coff_bfd_link_hash_table_create   coff_arm_link_hash_table_create

Definition at line 2181 of file coff-arm.c.

#define coff_bfd_merge_private_bfd_data   coff_arm_merge_private_bfd_data

Definition at line 2177 of file coff-arm.c.

#define coff_bfd_print_private_bfd_data   coff_arm_print_private_bfd_data

Definition at line 2178 of file coff-arm.c.

#define coff_bfd_reloc_type_lookup   coff_arm_reloc_type_lookup

Definition at line 2171 of file coff-arm.c.

#define coff_bfd_set_private_flags   _bfd_coff_arm_set_private_flags

Definition at line 2179 of file coff-arm.c.

#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER   (2)

Definition at line 905 of file coff-arm.c.

#define coff_final_link_postscript   coff_arm_final_link_postscript

Definition at line 2176 of file coff-arm.c.

#define coff_link_output_has_begun   coff_arm_link_output_has_begun

Definition at line 2175 of file coff-arm.c.

#define COFF_PAGE_SIZE   0x1000

Definition at line 906 of file coff-arm.c.

#define coff_relocate_section   coff_arm_relocate_section

Definition at line 2172 of file coff-arm.c.

#define coff_rtype_to_howto   coff_arm_rtype_to_howto

Definition at line 581 of file coff-arm.c.

Referenced by coff_arm_relocate_section().

#define DOIT (  ) 

Value:

x = ((x & ~howto->dst_mask)         \
       | (((x & howto->src_mask) + diff) & howto->dst_mask))

Referenced by bfd_install_relocation(), bfd_perform_relocation(), bitmap_operation(), coff_arm_reloc(), coff_i386_reloc(), coff_i860_reloc(), coff_mips_reloc(), do_ns32k_reloc(), and m32r_elf_generic_reloc().

#define EXTRA_S_FLAGS   SEC_CODE

Definition at line 2599 of file coff-arm.c.

#define HI_LOW_ORDER   0xF000F800

Definition at line 1020 of file coff-arm.c.

Referenced by insert_thumb_branch().

#define INTERWORK_FLAG ( abfd   )     (coff_data (abfd)->flags & F_INTERWORK)

#define INTERWORK_SET ( abfd   )     (coff_data (abfd)->flags & F_INTERWORK_SET)

#define LOCAL_LABEL_PREFIX   ""

#define LOW_HI_ORDER   0xF800F000

Definition at line 1019 of file coff-arm.c.

Referenced by insert_thumb_branch().

#define NUM_ELEM ( a   )     ((sizeof (a)) / sizeof ((a)[0]))

#define NUM_RELOCS   NUM_ELEM (aoutarm_std_reloc_howto)

Definition at line 559 of file coff-arm.c.

Referenced by coff_arm_rtype_to_howto().

#define PCRELOFFSET   TRUE

Definition at line 231 of file coff-arm.c.

#define PIC_FLAG ( abfd   )     (coff_data (abfd)->flags & F_PIC)

#define RTYPE2HOWTO ( cache_ptr,
dst   ) 

Value:

(cache_ptr)->howto =        \
    (dst)->r_type < NUM_RELOCS      \
    ? aoutarm_std_reloc_howto + (dst)->r_type \
    : NULL

Definition at line 575 of file coff-arm.c.

#define SELECT_RELOC ( x,
howto   )     { x.r_type = howto->type; }

Definition at line 909 of file coff-arm.c.

#define SET_APCS_FLAGS ( abfd,
flgs   ) 

Value:

do                  \
    {                 \
      coff_data (abfd)->flags &= ~(F_APCS_26 | F_APCS_FLOAT | F_PIC); \
      coff_data (abfd)->flags |= (flgs) | F_APCS_SET;     \
    }                 \
  while (0)

Definition at line 55 of file coff-arm.c.

Referenced by _bfd_coff_arm_set_private_flags(), coff_arm_copy_private_bfd_data(), and coff_arm_merge_private_bfd_data().

#define SET_INTERWORK_FLAG ( abfd,
flg   ) 

Value:

do                  \
    {                 \
      coff_data (abfd)->flags &= ~F_INTERWORK;        \
      coff_data (abfd)->flags |= (flg) | F_INTERWORK_SET;   \
    }                 \
  while (0)

Definition at line 69 of file coff-arm.c.

Referenced by _bfd_coff_arm_set_private_flags(), coff_arm_copy_private_bfd_data(), and coff_arm_merge_private_bfd_data().

#define SWAP_IN_RELOC_OFFSET   H_GET_32

Definition at line 916 of file coff-arm.c.

#define SWAP_OUT_RELOC_OFFSET   H_PUT_32

Definition at line 917 of file coff-arm.c.

#define TARGET_BIG_NAME   "coff-arm-big"

Definition at line 2588 of file coff-arm.c.

Definition at line 2585 of file coff-arm.c.

#define TARGET_LITTLE_NAME   "coff-arm-little"

Definition at line 2582 of file coff-arm.c.

Definition at line 2579 of file coff-arm.c.

#define TARGET_UNDERSCORE   '_'

Definition at line 227 of file coff-arm.c.

#define THUMB2ARM_GLUE_ENTRY_NAME   "__%s_from_thumb"

Definition at line 155 of file coff-arm.c.

Referenced by find_thumb_glue(), and record_thumb_to_arm_glue().

#define THUMB2ARM_GLUE_SECTION_NAME   ".glue_7t"

#define THUMB2ARM_GLUE_SIZE   (globals->support_old_code ? 20 : 8)

Definition at line 1142 of file coff-arm.c.

Referenced by record_thumb_to_arm_glue().

#define USER_LABEL_PREFIX   "_"


Typedef Documentation

typedef unsigned short int insn16

Definition at line 84 of file coff-arm.c.

typedef unsigned long int insn32

Definition at line 83 of file coff-arm.c.


Enumeration Type Documentation

Enumerator:
bunknown 
b9 
b12 
b23 

Definition at line 81 of file coff-arm.c.


Function Documentation

static bfd_boolean _bfd_coff_arm_set_private_flags ( bfd abfd,
flagword  flags 
) [static]

static bfd_reloc_status_type aoutarm_fix_pcrel_26 ( bfd abfd,
arelent reloc_entry,
asymbol symbol,
PTR  data,
asection input_section,
bfd output_bfd,
error_message   
) [static]

static bfd_reloc_status_type aoutarm_fix_pcrel_26_done ( abfd  ,
reloc_entry  ,
symbol  ,
data  ,
input_section  ,
output_bfd  ,
error_message   
) [static]

Definition at line 608 of file coff-arm.c.

References bfd_reloc_ok.

static void arm_emit_base_file_entry ( struct bfd_link_info info,
bfd output_bfd,
asection input_section,
bfd_vma  reloc_offset 
) [static]

bfd_boolean bfd_arm_allocate_interworking_sections ( struct bfd_link_info info  ) 

bfd_boolean bfd_arm_get_bfd_for_interworking ( bfd abfd,
struct bfd_link_info info 
)

bfd_boolean bfd_arm_process_before_allocation ( bfd abfd,
struct bfd_link_info info,
int  support_old_code 
)

static bfd_boolean coff_arm_adjust_symndx ( obfd  ,
info  ,
bfd ibfd,
asection sec,
struct internal_reloc irel,
bfd_boolean *  adjustedp 
) [static]

static bfd_boolean coff_arm_copy_private_bfd_data ( bfd src,
bfd dest 
) [static]

static bfd_boolean coff_arm_final_link_postscript ( abfd  ,
struct coff_final_link_info pfinfo 
) [static]

static bfd_boolean coff_arm_is_local_label_name ( abfd  ,
const char *  name 
) [static]

Definition at line 2504 of file coff-arm.c.

References FALSE, len, LOCAL_LABEL_PREFIX, strlen(), strncmp(), and USER_LABEL_PREFIX.

static struct bfd_link_hash_table* coff_arm_link_hash_table_create ( bfd abfd  )  [static, read]

static bfd_boolean coff_arm_link_output_has_begun ( bfd sub,
struct coff_final_link_info info 
) [static]

Definition at line 2546 of file coff-arm.c.

References coff_arm_hash_table, and coff_final_link_info::info.

static bfd_boolean coff_arm_merge_private_bfd_data ( bfd ibfd,
bfd obfd 
) [static]

static bfd_boolean coff_arm_print_private_bfd_data ( bfd abfd,
PTR  ptr 
) [static]

static bfd_reloc_status_type coff_arm_reloc ( bfd abfd,
arelent reloc_entry,
symbol  ,
PTR  data,
input_section  ,
bfd output_bfd,
error_message   
) [static]

static struct reloc_howto_struct* coff_arm_reloc_type_lookup ( bfd abfd,
bfd_reloc_code_real_type  code 
) [static, read]

static bfd_boolean coff_arm_relocate_section ( bfd output_bfd,
struct bfd_link_info info,
bfd input_bfd,
asection input_section,
bfd_byte contents,
struct internal_reloc relocs,
struct internal_syment syms,
asection **  sections 
) [static]

Definition at line 1196 of file coff-arm.c.

References _, _bfd_coff_internal_syment_name(), _bfd_error_handler, _bfd_final_link_relocate(), abort, addend, address, aoutarm_fix_pcrel_26(), ARM2THUMB_GLUE_SECTION_NAME, ARM_26, ARM_32, arm_emit_base_file_entry(), coff_arm_link_hash_table::arm_glue_size, ARM_RVA32, ARM_THUMB23, bfd_link_info::base_file, bfd_abs_section_ptr, BFD_ASSERT, bfd_big_endian, bfd_get_32, bfd_get_reloc_size(), bfd_get_section_by_name(), bfd_get_section_limit, bfd_link_hash_defined, bfd_link_hash_defweak, coff_arm_link_hash_table::bfd_of_glue_owner, bfd_put_16, bfd_put_32, bfd_reloc_ok, bfd_reloc_outofrange, bfd_reloc_overflow, reloc_howto_struct::bitsize, buf, C_EXT, C_LABEL, C_STAT, C_THUMBEXTFUNC, C_THUMBSTATFUNC, bfd_link_info::callbacks, check, coff_link_hash_entry::class, coff_arm_hash_table, coff_rtype_to_howto, reloc_howto_struct::complain_on_overflow, complain_overflow_signed, bfd_section::contents, bfd_link_hash_entry::def, reloc_howto_struct::dst_mask, FALSE, find_arm_glue(), find_thumb_glue(), h, HOWTO, insert_thumb_branch(), INTERWORK_FLAG, INTERWORK_SET, location, long, internal_syment::n_sclass, internal_syment::n_scnum, N_UNDEF, internal_syment::n_value, reloc_howto_struct::name, NULL, obj_coff_sym_hashes, bfd_section::output_offset, bfd_section::output_section, overflow, bfd_section::owner, reloc_howto_struct::partial_inplace, reloc_howto_struct::pc_relative, reloc_howto_struct::pcrel_offset, pe_data, internal_reloc::r_symndx, internal_reloc::r_type, internal_reloc::r_vaddr, rel, bfd_section::reloc_count, bfd_link_callbacks::reloc_overflow, bfd_link_info::relocatable, reloc_howto_struct::rightshift, coff_link_hash_entry::root, bfd_link_hash_entry::root, s, sec, size, bfd_hash_entry::string, coff_arm_link_hash_table::support_old_code, sym, SYMNMLEN, THUMB2ARM_GLUE_SECTION_NAME, coff_arm_link_hash_table::thumb_glue_size, tmp, TRUE, bfd_link_hash_entry::type, reloc_howto_struct::type, bfd_link_hash_entry::u, bfd_link_callbacks::undefined_symbol, val, bfd_section::vma, and x.

static reloc_howto_type* coff_arm_rtype_to_howto ( abfd  ,
asection sec,
struct internal_reloc rel,
h  ,
sym  ,
bfd_vma addendp 
) [static]

static bfd_reloc_status_type coff_thumb_pcrel_12 ( bfd abfd,
arelent reloc_entry,
asymbol symbol,
PTR  data,
asection input_section,
bfd output_bfd,
char **  error_message 
) [static]

Definition at line 847 of file coff-arm.c.

References b12, and coff_thumb_pcrel_common().

static bfd_reloc_status_type coff_thumb_pcrel_23 ( bfd abfd,
arelent reloc_entry,
asymbol symbol,
PTR  data,
asection input_section,
bfd output_bfd,
char **  error_message 
) [static]

Definition at line 814 of file coff-arm.c.

References b23, and coff_thumb_pcrel_common().

static bfd_reloc_status_type coff_thumb_pcrel_9 ( bfd abfd,
arelent reloc_entry,
asymbol symbol,
PTR  data,
asection input_section,
bfd output_bfd,
char **  error_message 
) [static]

Definition at line 830 of file coff-arm.c.

References b9, and coff_thumb_pcrel_common().

static bfd_reloc_status_type coff_thumb_pcrel_common ( bfd abfd,
arelent reloc_entry,
asymbol symbol,
PTR  data,
asection input_section,
bfd output_bfd,
error_message  ,
thumb_pcrel_branchtype  btype 
) [static]

static struct coff_link_hash_entry* find_arm_glue ( struct bfd_link_info info,
const char *  name,
bfd input_bfd 
) [static, read]

static struct coff_link_hash_entry* find_thumb_glue ( struct bfd_link_info info,
const char *  name,
bfd input_bfd 
) [static, read]

static insn32 insert_thumb_branch ( insn32  br_insn,
int  rel_off 
) [static]

Definition at line 1023 of file coff-arm.c.

References abort, BFD_ASSERT, HI_LOW_ORDER, and LOW_HI_ORDER.

Referenced by coff_arm_relocate_section().

static void arm_emit_base_file_entry PARAMS ( (struct bfd_link_info *, bfd *, asection *, bfd_vma  )  [static]

static bfd_boolean coff_arm_link_output_has_begun PARAMS ( (bfd *, struct coff_final_link_info *)   )  [static]

static bfd_boolean coff_arm_is_local_label_name PARAMS ( (bfd *, const char *)   )  [static]

static bfd_boolean _bfd_coff_arm_set_private_flags PARAMS ( (bfd *, flagword  )  [static]

static bfd_boolean coff_arm_print_private_bfd_data PARAMS ( (bfd *, PTR  )  [static]

static bfd_boolean coff_arm_merge_private_bfd_data PARAMS ( (bfd *, bfd *)   )  [static]

static void record_arm_to_thumb_glue PARAMS ( (struct bfd_link_info *, struct coff_link_hash_entry *)   )  [static]

static struct coff_link_hash_entry* find_thumb_glue PARAMS ( (struct bfd_link_info *, const char *, bfd *)   )  [static, read]

static struct bfd_link_hash_table* coff_arm_link_hash_table_create PARAMS ( (bfd *)   )  [static, read]

static struct reloc_howto_struct* coff_arm_reloc_type_lookup PARAMS ( (bfd *, bfd_reloc_code_real_type  )  [static, read]

static bfd_reloc_status_type coff_thumb_pcrel_common PARAMS ( (bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **, thumb_pcrel_branchtype  )  [static]

static reloc_howto_type* coff_arm_rtype_to_howto PARAMS ( (bfd *, asection *, struct internal_reloc *, struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *)   )  [static]

static bfd_boolean coff_arm_adjust_symndx PARAMS ( (bfd *, struct bfd_link_info *, bfd *, asection *, struct internal_reloc *, bfd_boolean *)   )  [static]

static insn32 insert_thumb_branch PARAMS ( (insn32, int)   )  [static]

static bfd_reloc_status_type aoutarm_fix_pcrel_26_done PARAMS ( (bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)   )  [static]

static bfd_boolean coff_arm_relocate_section PARAMS ( (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)   )  [static]

static void record_arm_to_thumb_glue ( struct bfd_link_info info,
struct coff_link_hash_entry h 
) [static]

static void record_thumb_to_arm_glue ( struct bfd_link_info info,
struct coff_link_hash_entry h 
) [static]


Variable Documentation

const insn32 a2t1_ldr_insn = 0xe59fc000 [static]

Definition at line 1120 of file coff-arm.c.

const insn32 a2t2_bx_r12_insn = 0xe12fff1c [static]

Definition at line 1121 of file coff-arm.c.

const insn32 a2t3_func_addr_insn = 0x00000001 [static]

Definition at line 1122 of file coff-arm.c.

Definition at line 268 of file coff-arm.c.

const insn16 t2a1_bx_pc_insn = 0x4778 [static]

Definition at line 1143 of file coff-arm.c.

const insn16 t2a1_push_insn = 0xb540 [static]

Definition at line 1147 of file coff-arm.c.

const insn16 t2a2_ldr_insn = 0x4e03 [static]

Definition at line 1148 of file coff-arm.c.

const insn16 t2a2_noop_insn = 0x46c0 [static]

Definition at line 1144 of file coff-arm.c.

const insn32 t2a3_b_insn = 0xea000000 [static]

Definition at line 1145 of file coff-arm.c.

const insn16 t2a3_mov_insn = 0x46fe [static]

Definition at line 1149 of file coff-arm.c.

const insn16 t2a4_bx_insn = 0x4730 [static]

Definition at line 1150 of file coff-arm.c.

const insn32 t2a5_pop_insn = 0xe8bd4040 [static]

Definition at line 1151 of file coff-arm.c.

const insn32 t2a6_bx_insn = 0xe12fff1e [static]

Definition at line 1152 of file coff-arm.c.

Definition at line 566 of file coff-mcore.c.


Generated on Wed Apr 8 14:46:48 2009 for Open64 by  doxygen 1.5.6