Output_section* output_section,
bool needs_special_offset_handling,
unsigned char* view,
- elfcpp::Elf_types<32>::Elf_Addr view_address,
+ Arm_address view_address,
section_size_type view_size,
const Reloc_symbol_changes*);
off_t offset_in_output_section,
const Relocatable_relocs*,
unsigned char* view,
- elfcpp::Elf_types<32>::Elf_Addr view_address,
+ Arm_address view_address,
section_size_type view_size,
unsigned char* reloc_view,
section_size_type reloc_view_size);
const elfcpp::Rel<32, big_endian>&,
unsigned int r_type, const Sized_symbol<32>*,
const Symbol_value<32>*,
- unsigned char*, elfcpp::Elf_types<32>::Elf_Addr,
+ unsigned char*, Arm_address,
section_size_type);
// Return whether we want to pass flag NON_PIC_REF for this
arm_branch_common(unsigned char *view,
const Sized_relobj<32, big_endian>* object,
const Symbol_value<32>* psymval,
- elfcpp::Elf_types<32>::Elf_Addr address,
+ Arm_address address,
bool has_thumb_bit)
{
typedef typename elfcpp::Swap<32, big_endian>::Valtype Valtype;
rel32(unsigned char *view,
const Sized_relobj<32, big_endian>* object,
const Symbol_value<32>* psymval,
- elfcpp::Elf_types<32>::Elf_Addr address,
+ Arm_address address,
bool has_thumb_bit)
{
typedef typename elfcpp::Swap<32, big_endian>::Valtype Valtype;
thm_call(unsigned char *view,
const Sized_relobj<32, big_endian>* object,
const Symbol_value<32>* psymval,
- elfcpp::Elf_types<32>::Elf_Addr address,
+ Arm_address address,
bool has_thumb_bit)
{
// A thumb call consists of two instructions.
// R_ARM_BASE_PREL: B(S) + A - P
static inline typename This::Status
base_prel(unsigned char* view,
- elfcpp::Elf_types<32>::Elf_Addr origin,
- elfcpp::Elf_types<32>::Elf_Addr address)
+ Arm_address origin,
+ Arm_address address)
{
Base::rel32(view, origin - address);
return STATUS_OKAY;
// R_ARM_BASE_ABS: B(S) + A
static inline typename This::Status
base_abs(unsigned char* view,
- elfcpp::Elf_types<32>::Elf_Addr origin)
+ Arm_address origin)
{
Base::rel32(view, origin);
return STATUS_OKAY;
static inline typename This::Status
got_prel(unsigned char* view,
typename elfcpp::Swap<32, big_endian>::Valtype got_offset,
- elfcpp::Elf_types<32>::Elf_Addr address)
+ Arm_address address)
{
Base::rel32(view, got_offset - address);
return This::STATUS_OKAY;
plt32(unsigned char *view,
const Sized_relobj<32, big_endian>* object,
const Symbol_value<32>* psymval,
- elfcpp::Elf_types<32>::Elf_Addr address,
+ Arm_address address,
bool has_thumb_bit)
{
return arm_branch_common<elfcpp::R_ARM_PLT32>(view, object, psymval,
call(unsigned char *view,
const Sized_relobj<32, big_endian>* object,
const Symbol_value<32>* psymval,
- elfcpp::Elf_types<32>::Elf_Addr address,
+ Arm_address address,
bool has_thumb_bit)
{
return arm_branch_common<elfcpp::R_ARM_CALL>(view, object, psymval,
jump24(unsigned char *view,
const Sized_relobj<32, big_endian>* object,
const Symbol_value<32>* psymval,
- elfcpp::Elf_types<32>::Elf_Addr address,
+ Arm_address address,
bool has_thumb_bit)
{
return arm_branch_common<elfcpp::R_ARM_JUMP24>(view, object, psymval,
prel31(unsigned char *view,
const Sized_relobj<32, big_endian>* object,
const Symbol_value<32>* psymval,
- elfcpp::Elf_types<32>::Elf_Addr address,
+ Arm_address address,
bool has_thumb_bit)
{
typedef typename elfcpp::Swap<32, big_endian>::Valtype Valtype;
movw_prel_nc(unsigned char *view,
const Sized_relobj<32, big_endian>* object,
const Symbol_value<32>* psymval,
- elfcpp::Elf_types<32>::Elf_Addr address,
+ Arm_address address,
bool has_thumb_bit)
{
typedef typename elfcpp::Swap<32, big_endian>::Valtype Valtype;
movt_prel(unsigned char *view,
const Sized_relobj<32, big_endian>* object,
const Symbol_value<32>* psymval,
- elfcpp::Elf_types<32>::Elf_Addr address)
+ Arm_address address)
{
typedef typename elfcpp::Swap<32, big_endian>::Valtype Valtype;
Valtype* wv = reinterpret_cast<Valtype*>(view);
thm_movw_prel_nc(unsigned char *view,
const Sized_relobj<32, big_endian>* object,
const Symbol_value<32>* psymval,
- elfcpp::Elf_types<32>::Elf_Addr address,
+ Arm_address address,
bool has_thumb_bit)
{
typedef typename elfcpp::Swap<16, big_endian>::Valtype Valtype;
thm_movt_prel(unsigned char *view,
const Sized_relobj<32, big_endian>* object,
const Symbol_value<32>* psymval,
- elfcpp::Elf_types<32>::Elf_Addr address)
+ Arm_address address)
{
typedef typename elfcpp::Swap<16, big_endian>::Valtype Valtype;
typedef typename elfcpp::Swap<32, big_endian>::Valtype Reltype;
got_size);
unsigned char* pov = oview;
- elfcpp::Elf_types<32>::Elf_Addr plt_address = this->address();
- elfcpp::Elf_types<32>::Elf_Addr got_address = this->got_plt_->address();
+ Arm_address plt_address = this->address();
+ Arm_address got_address = this->got_plt_->address();
// Write first PLT entry. All but the last word are constants.
const size_t num_first_plt_words = (sizeof(first_plt_entry)
const Sized_symbol<32>* gsym,
const Symbol_value<32>* psymval,
unsigned char* view,
- elfcpp::Elf_types<32>::Elf_Addr address,
+ Arm_address address,
section_size_type /* view_size */ )
{
typedef Arm_relocate_functions<big_endian> Arm_relocate_functions;
case elfcpp::R_ARM_GOTOFF32:
{
- elfcpp::Elf_types<32>::Elf_Addr got_origin;
+ Arm_address got_origin;
got_origin = target->got_plt_section()->address();
reloc_status = Arm_relocate_functions::rel32(view, object, psymval,
got_origin, has_thumb_bit);
// Get the address origin for GOT PLT, which is allocated right
// after the GOT section, to calculate an absolute address of
// the symbol GOT entry (got_origin + got_offset).
- elfcpp::Elf_types<32>::Elf_Addr got_origin;
+ Arm_address got_origin;
got_origin = target->got_plt_section()->address();
reloc_status = Arm_relocate_functions::got_prel(view,
got_origin + got_offset,
Output_section* output_section,
bool needs_special_offset_handling,
unsigned char* view,
- elfcpp::Elf_types<32>::Elf_Addr address,
+ Arm_address address,
section_size_type view_size,
const Reloc_symbol_changes* reloc_symbol_changes)
{
off_t offset_in_output_section,
const Relocatable_relocs* rr,
unsigned char* view,
- elfcpp::Elf_types<32>::Elf_Addr view_address,
+ Arm_address view_address,
section_size_type view_size,
unsigned char* reloc_view,
section_size_type reloc_view_size)