diff options
author | Nick Clifton <nickc@redhat.com> | 2013-03-21 16:08:07 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2013-03-21 16:08:07 +0000 |
commit | 81f5558e3d93654ed79b6ea28850a4798ea1404f (patch) | |
tree | 09a020b2f58cf3b34739e07297561af0184b61ba /ld/ld.texinfo | |
parent | b2f83c08372136fe9fe7d1df2feb5566c8b883fb (diff) | |
download | gdb-81f5558e3d93654ed79b6ea28850a4798ea1404f.zip gdb-81f5558e3d93654ed79b6ea28850a4798ea1404f.tar.gz gdb-81f5558e3d93654ed79b6ea28850a4798ea1404f.tar.bz2 |
* elf32-h8300 (h8_relax_section): Add new relaxation of mov
@(disp:32,ERx) to mov @(disp:16,ERx).
(R_H8_DISP32A16): New reloc.
Comments added and corrected.
* reloc.c (BFD_RELOC_H8_DISP32A16): New reloc.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* ld.texinfo (H8/300): Add description of relaxation of
mov @(disp:32,ERx) to mov @(disp:16,ERx).
* ld-h8300/h8300.exp: Add new relax-7 test on ELF.
* ld-h8300/relax-2.s: Add other direction and .w/.l variants of
mov insns.
* ld-h8300/relax-2.d: Update expected disassembly.
* ld-h8300/relax-7a.s: New: tests for mov @(disp:32,ERx) -> mov
@(disp:16,ERx).
* ld-h8300/relax-7b.s: New: Likewise.
* ld-h8300/relax-7.d: New: expected disassembly.
* config/tc-h8300.c (do_a_fix_imm): Add relaxation of mov
@(disp:32,ERx) to mov @(disp:16,ERx) insns by new reloc
R_H8_DISP32A16.
* config/tc-h8300.h: Remove duplicated defines.
Diffstat (limited to 'ld/ld.texinfo')
-rw-r--r-- | ld/ld.texinfo | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/ld/ld.texinfo b/ld/ld.texinfo index 1f8e34d..7fae2c2 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -6078,7 +6078,7 @@ respectively. @cindex synthesizing on H8/300 @item synthesizing instructions -@c FIXME: specifically mov.b, or any mov instructions really? +@c FIXME: specifically mov.b, or any mov instructions really? -> mov.b only, at least on H8, H8H, H8S @command{ld} finds all @code{mov.b} instructions which use the sixteen-bit absolute address form, but refer to the top page of memory, and changes them to use the eight-bit address form. @@ -6086,6 +6086,14 @@ page of memory, and changes them to use the eight-bit address form. @samp{mov.b @code{@@}@var{aa}:8} whenever the address @var{aa} is in the top page of memory). +@command{ld} finds all @code{mov} instructions which use the register +indirect with 32-bit displacement addressing mode, but use a small +displacement inside 16-bit displacement range, and changes them to use +the 16-bit displacement form. (That is: the linker turns @samp{mov.b +@code{@@}@var{d}:32,ERx} into @samp{mov.b @code{@@}@var{d}:16,ERx} +whenever the displacement @var{d} is in the 16 bit signed integer +range. Only implemented in ELF-format ld). + @item bit manipulation instructions @command{ld} finds all bit manipulation instructions like @code{band, bclr, biand, bild, bior, bist, bixor, bld, bnot, bor, bset, bst, btst, bxor} |