diff options
author | Stephane Carrez <stcarrez@nerim.fr> | 2002-08-13 20:08:49 +0000 |
---|---|---|
committer | Stephane Carrez <stcarrez@nerim.fr> | 2002-08-13 20:08:49 +0000 |
commit | 3dbfec864446cba138045d0888937db34aab093b (patch) | |
tree | c69b93c9ca0a375b34a3b3fa47a02d2aa4a4426b /bfd | |
parent | 7b4c2dcea0d6cb0b9eb6f74c163863cc178742fa (diff) | |
download | gdb-3dbfec864446cba138045d0888937db34aab093b.zip gdb-3dbfec864446cba138045d0888937db34aab093b.tar.gz gdb-3dbfec864446cba138045d0888937db34aab093b.tar.bz2 |
* reloc.c (BFD_RELOC_M68HC11_RL_JUMP, BFD_RELOC_M68HC11_RL_GROUP,
BFD_RELOC_M68HC11_LO16, BFD_RELOC_M68HC11_PAGE,
BFD_RELOC_M68HC11_24): New relocs for 68HC11/68HC12.
* bfd-in2.h: Regenerate.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/bfd-in2.h | 37 | ||||
-rw-r--r-- | bfd/reloc.c | 42 |
3 files changed, 80 insertions, 6 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index c88e5ff..c62266b 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2002-08-13 Stephane Carrez <stcarrez@nerim.fr> + + * reloc.c (BFD_RELOC_M68HC11_RL_JUMP, BFD_RELOC_M68HC11_RL_GROUP, + BFD_RELOC_M68HC11_LO16, BFD_RELOC_M68HC11_PAGE, + BFD_RELOC_M68HC11_24): New relocs for 68HC11/68HC12. + * bfd-in2.h: Regenerate. + 2002-08-12 H.J. Lu <hjl@gnu.org> * elflink.h (elf_add_default_symbol): Preserve section across diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index bb5fef0..f6ed460 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -3040,17 +3040,48 @@ this offset in the reloc's section offset. */ BFD_RELOC_IA64_LTOFF_DTPREL22, /* Motorola 68HC11 reloc. -This is the 8 bits high part of an absolute address. */ +This is the 8 bit high part of an absolute address. */ BFD_RELOC_M68HC11_HI8, /* Motorola 68HC11 reloc. -This is the 8 bits low part of an absolute address. */ +This is the 8 bit low part of an absolute address. */ BFD_RELOC_M68HC11_LO8, /* Motorola 68HC11 reloc. -This is the 3 bits of a value. */ +This is the 3 bit of a value. */ BFD_RELOC_M68HC11_3B, +/* Motorola 68HC11 reloc. +This reloc marks the beginning of a jump/call instruction. +It is used for linker relaxation to correctly identify beginning +of instruction and change some branchs to use PC-relative +addressing mode. */ + BFD_RELOC_M68HC11_RL_JUMP, + +/* Motorola 68HC11 reloc. +This reloc marks a group of several instructions that gcc generates +and for which the linker relaxation pass can modify and/or remove +some of them. */ + BFD_RELOC_M68HC11_RL_GROUP, + +/* Motorola 68HC11 reloc. +This is the 16-bit lower part of an address. It is used for 'call' +instruction to specify the symbol address without any special +transformation (due to memory bank window). */ + BFD_RELOC_M68HC11_LO16, + +/* Motorola 68HC11 reloc. +This is a 8-bit reloc that specifies the page number of an address. +It is used by 'call' instruction to specify the page number of +the symbol. */ + BFD_RELOC_M68HC11_PAGE, + +/* Motorola 68HC11 reloc. +This is a 24-bit reloc that represents the address with a 16-bit +value and a 8-bit page number. The symbol address is transformed +to follow the 16K memory bank of 68HC12 (seen as mapped in the window). */ + BFD_RELOC_M68HC11_24, + /* These relocs are only used within the CRIS assembler. They are not (at present) written to any object files. */ BFD_RELOC_CRIS_BDISP8, diff --git a/bfd/reloc.c b/bfd/reloc.c index 5f76db1..deba952 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -3359,17 +3359,53 @@ ENUM BFD_RELOC_M68HC11_HI8 ENUMDOC Motorola 68HC11 reloc. - This is the 8 bits high part of an absolute address. + This is the 8 bit high part of an absolute address. ENUM BFD_RELOC_M68HC11_LO8 ENUMDOC Motorola 68HC11 reloc. - This is the 8 bits low part of an absolute address. + This is the 8 bit low part of an absolute address. ENUM BFD_RELOC_M68HC11_3B ENUMDOC Motorola 68HC11 reloc. - This is the 3 bits of a value. + This is the 3 bit of a value. +ENUM + BFD_RELOC_M68HC11_RL_JUMP +ENUMDOC + Motorola 68HC11 reloc. + This reloc marks the beginning of a jump/call instruction. + It is used for linker relaxation to correctly identify beginning + of instruction and change some branchs to use PC-relative + addressing mode. +ENUM + BFD_RELOC_M68HC11_RL_GROUP +ENUMDOC + Motorola 68HC11 reloc. + This reloc marks a group of several instructions that gcc generates + and for which the linker relaxation pass can modify and/or remove + some of them. +ENUM + BFD_RELOC_M68HC11_LO16 +ENUMDOC + Motorola 68HC11 reloc. + This is the 16-bit lower part of an address. It is used for 'call' + instruction to specify the symbol address without any special + transformation (due to memory bank window). +ENUM + BFD_RELOC_M68HC11_PAGE +ENUMDOC + Motorola 68HC11 reloc. + This is a 8-bit reloc that specifies the page number of an address. + It is used by 'call' instruction to specify the page number of + the symbol. +ENUM + BFD_RELOC_M68HC11_24 +ENUMDOC + Motorola 68HC11 reloc. + This is a 24-bit reloc that represents the address with a 16-bit + value and a 8-bit page number. The symbol address is transformed + to follow the 16K memory bank of 68HC12 (seen as mapped in the window). ENUM BFD_RELOC_CRIS_BDISP8 |