diff options
author | Catherine Moore <clm@redhat.com> | 1999-05-25 11:56:16 +0000 |
---|---|---|
committer | Catherine Moore <clm@redhat.com> | 1999-05-25 11:56:16 +0000 |
commit | fa0e42e45712133c4c2d95261c3c0ac8d87b6765 (patch) | |
tree | 58902935dc46ec4daf8a6e326d88c8a0da2cfd05 /bfd/coff-arm.c | |
parent | 93dfcdf0615003799ac0a3d90c3fbb6443d9d615 (diff) | |
download | gdb-fa0e42e45712133c4c2d95261c3c0ac8d87b6765.zip gdb-fa0e42e45712133c4c2d95261c3c0ac8d87b6765.tar.gz gdb-fa0e42e45712133c4c2d95261c3c0ac8d87b6765.tar.bz2 |
* coff-arm.c (coff_arm_relocate_section): Don't emit
base file entries for pc-relative values.
Diffstat (limited to 'bfd/coff-arm.c')
-rw-r--r-- | bfd/coff-arm.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/bfd/coff-arm.c b/bfd/coff-arm.c index 594e757..52baa85 100644 --- a/bfd/coff-arm.c +++ b/bfd/coff-arm.c @@ -1,5 +1,5 @@ /* BFD back-end for ARM COFF files. - Copyright 1990, 91, 92, 93, 94, 95, 96, 97, 1998 + Copyright 1990, 91, 92, 93, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. Written by Cygnus Support. @@ -934,8 +934,6 @@ static const insn32 a2t1_ldr_insn = 0xe59fc000; static const insn32 a2t2_bx_r12_insn = 0xe12fff1c; static const insn32 a2t3_func_addr_insn = 0x00000001; -#define A2T3_OFFSET 8 - /* Thumb->ARM: Thumb->(non-interworking aware) ARM @@ -959,8 +957,6 @@ static const insn16 t2a1_bx_pc_insn = 0x4778; static const insn16 t2a2_noop_insn = 0x46c0; static const insn32 t2a3_b_insn = 0xea000000; -#define T2A3_OFFSET 8 - static const insn16 t2a1_push_insn = 0xb540; static const insn16 t2a2_ldr_insn = 0x4e03; static const insn16 t2a3_mov_insn = 0x46fe; @@ -1212,7 +1208,7 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section, if (info->base_file) arm_emit_base_file_entry (info, output_bfd, s, - my_offset + A2T3_OFFSET); + my_offset + 8); } @@ -1319,6 +1315,9 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section, /* Store the address of the function in the last word of the stub. */ bfd_put_32 (output_bfd, h_val, s->contents + my_offset + 16); + + if (info->base_file) + arm_emit_base_file_entry (info, output_bfd, s, my_offset + 16); } else { @@ -1341,9 +1340,6 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section, t2a3_b_insn | ((ret_offset >> 2) & 0x00FFFFFF), s->contents + my_offset + 4); - if (info->base_file) - arm_emit_base_file_entry (info, output_bfd, s, - my_offset + T2A3_OFFSET); } } @@ -1366,9 +1362,6 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section, contents + rel->r_vaddr - input_section->vma); - if (info->base_file) - arm_emit_base_file_entry (info, output_bfd, input_section, rel->r_vaddr); - done = 1; } } |