diff options
author | Jan Beulich <jbeulich@novell.com> | 2005-02-15 08:11:14 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2005-02-15 08:11:14 +0000 |
commit | 7b347e436d891e39488be78a0e7fccb51de7b3c0 (patch) | |
tree | 7f93017f6228b78afcbbe8afaaf2c19d01ff676e /gas/config/tc-ia64.c | |
parent | a66d2bb7bd680ef111a431892a5d69fa1147f6b4 (diff) | |
download | ppe42-binutils-7b347e436d891e39488be78a0e7fccb51de7b3c0.tar.gz ppe42-binutils-7b347e436d891e39488be78a0e7fccb51de7b3c0.zip |
gas/
2005-02-15 Jan Beulich <jbeulich@novell.com>
* config/tc-ia64.c (md_apply_fix3): Call ia64_gen_real_reloc_type
instead of explicitly dealing with the translation; exclude
relocations that are already pcrel, however.
gas/testsuite/
2005-02-15 Jan Beulich <jbeulich@novell.com>
* gas/ia64/pcrel.[ds]: New.
* gas/ia64/ia64.exp: Run new test.
Diffstat (limited to 'gas/config/tc-ia64.c')
-rw-r--r-- | gas/config/tc-ia64.c | 39 |
1 files changed, 18 insertions, 21 deletions
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c index 4520d0b14f..42aad8f191 100644 --- a/gas/config/tc-ia64.c +++ b/gas/config/tc-ia64.c @@ -11243,27 +11243,24 @@ md_apply_fix3 (fix, valP, seg) if (fix->fx_pcrel) { - switch (fix->fx_r_type) - { - case BFD_RELOC_IA64_DIR32MSB: - fix->fx_r_type = BFD_RELOC_IA64_PCREL32MSB; - break; - - case BFD_RELOC_IA64_DIR32LSB: - fix->fx_r_type = BFD_RELOC_IA64_PCREL32LSB; - break; - - case BFD_RELOC_IA64_DIR64MSB: - fix->fx_r_type = BFD_RELOC_IA64_PCREL64MSB; - break; - - case BFD_RELOC_IA64_DIR64LSB: - fix->fx_r_type = BFD_RELOC_IA64_PCREL64LSB; - break; - - default: - break; - } + switch (fix->fx_r_type) + { + case BFD_RELOC_IA64_PCREL21B: break; + case BFD_RELOC_IA64_PCREL21BI: break; + case BFD_RELOC_IA64_PCREL21F: break; + case BFD_RELOC_IA64_PCREL21M: break; + case BFD_RELOC_IA64_PCREL60B: break; + case BFD_RELOC_IA64_PCREL22: break; + case BFD_RELOC_IA64_PCREL64I: break; + case BFD_RELOC_IA64_PCREL32MSB: break; + case BFD_RELOC_IA64_PCREL32LSB: break; + case BFD_RELOC_IA64_PCREL64MSB: break; + case BFD_RELOC_IA64_PCREL64LSB: break; + default: + fix->fx_r_type = ia64_gen_real_reloc_type (pseudo_func[FUNC_PC_RELATIVE].u.sym, + fix->fx_r_type); + break; + } } if (fix->fx_addsy) { |