forked from Imagelibrary/binutils-gdb
Use getters/setters to access ARM branch type
2016-05-10 Thomas Preud'homme <thomas.preudhomme@arm.com> bfd/ * elf32-arm.c (elf32_arm_size_stubs): Use new macros ARM_GET_SYM_BRANCH_TYPE and ARM_SET_SYM_BRANCH_TYPE to respectively get and set branch type of a symbol. (bfd_elf32_arm_process_before_allocation): Likewise. (elf32_arm_relocate_section): Likewise and fix identation along the way. (allocate_dynrelocs_for_symbol): Likewise. (elf32_arm_finish_dynamic_symbol): Likewise. (elf32_arm_swap_symbol_in): Likewise. (elf32_arm_swap_symbol_out): Likewise. gas/ * config/tc-arm.c (arm_adjust_symtab): Use ARM_SET_SYM_BRANCH_TYPE to set branch type of a symbol. gdb/ * arm-tdep.c (arm_elf_make_msymbol_special): Use ARM_GET_SYM_BRANCH_TYPE to get branch type of a symbol. include/ * arm.h (enum arm_st_branch_type): Add new ST_BRANCH_ENUM_SIZE enumerator. (NUM_ENUM_ARM_ST_BRANCH_TYPE_BITS): New macro. (ENUM_ARM_ST_BRANCH_TYPE_BITMASK): Likewise. (ARM_SYM_BRANCH_TYPE): Replace by ... (ARM_GET_SYM_BRANCH_TYPE): This and ... (ARM_SET_SYM_BRANCH_TYPE): This in two versions depending on whether BFD_ASSERT is defined or not. ld/ * emultempl/armelf.em (gld${EMULATION_NAME}_finish): Use ARM_GET_SYM_BRANCH_TYPE to get branch type of a symbol. opcodes/ * arm-dis.c (get_sym_code_type): Use ARM_GET_SYM_BRANCH_TYPE to get branch type of a symbol. (print_insn): Likewise.
This commit is contained in:
@@ -6288,7 +6288,8 @@ get_sym_code_type (struct disassemble_info *info,
|
||||
/* If the symbol has function type then use that. */
|
||||
if (type == STT_FUNC || type == STT_GNU_IFUNC)
|
||||
{
|
||||
if (ARM_SYM_BRANCH_TYPE (&es->internal_elf_sym) == ST_BRANCH_TO_THUMB)
|
||||
if (ARM_GET_SYM_BRANCH_TYPE (es->internal_elf_sym.st_target_internal)
|
||||
== ST_BRANCH_TO_THUMB)
|
||||
*map_type = MAP_THUMB;
|
||||
else
|
||||
*map_type = MAP_ARM;
|
||||
@@ -6655,9 +6656,9 @@ print_insn (bfd_vma pc, struct disassemble_info *info, bfd_boolean little)
|
||||
es = *(elf_symbol_type **)(info->symbols);
|
||||
type = ELF_ST_TYPE (es->internal_elf_sym.st_info);
|
||||
|
||||
is_thumb = ((ARM_SYM_BRANCH_TYPE (&es->internal_elf_sym)
|
||||
== ST_BRANCH_TO_THUMB)
|
||||
|| type == STT_ARM_16BIT);
|
||||
is_thumb =
|
||||
((ARM_GET_SYM_BRANCH_TYPE (es->internal_elf_sym.st_target_internal)
|
||||
== ST_BRANCH_TO_THUMB) || type == STT_ARM_16BIT);
|
||||
}
|
||||
else if (bfd_asymbol_flavour (*info->symbols)
|
||||
== bfd_target_mach_o_flavour)
|
||||
|
||||
Reference in New Issue
Block a user