diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2002-02-01 08:09:47 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@axis.com> | 2002-02-01 08:09:47 +0000 |
commit | 973eb3402f7b79ba3444177887be54562a276841 (patch) | |
tree | 27c9b87cee0f0f0f29b35462b3790c93e68b8a23 /gas/doc | |
parent | b52a8679a51c7c8981ceadef6e0ba2a83e8857f9 (diff) | |
download | binutils-973eb3402f7b79ba3444177887be54562a276841.zip binutils-973eb3402f7b79ba3444177887be54562a276841.tar.gz binutils-973eb3402f7b79ba3444177887be54562a276841.tar.bz2 |
Support on-demand global register allocation by passing on
base-plus-offset relocs to the linker.
* config/tc-mmix.c: Tweak and fix typos in comments.
(allocate_undefined_gregs_in_linker): New variable.
(OPTION_LINKER_ALLOCATED_GREGS): New option macro.
(md_longopts): Add --linker-allocated-gregs.
(md_parse_option) <case 'x'>: Imply --linker-allocated-gregs.
<case OPTION_LINKER_ALLOCATED_GREGS>: New.
(md_show_usage): Update text for -x. Add text for
--linker-allocated-gregs.
(tc_gen_reloc): Derive default value for addend from val and
baddsy. Use addsec and bfd_is_abs_section in more places. Don't
emit error for BFD_RELOC_MMIX_BASE_PLUS_OFFSET without suitable
GREG if allocate_undefined_gregs_in_linker.
* doc/as.texinfo (Overview) <Target MMIX options>: Add
--linker-allocated-gregs.
* doc/c-mmix.texi (MMIX-Opts): Add blurb about
--linker-allocated-gregs. Mention that it's implied by -x.
(MMIX-Pseudos) <GREG>: Mention when and how a GREG can be omitted.
(MMIX-mmixal): Clarify dated comparison and location of MMIXware.
* config/tc-mmix.h (md_parse_name): Use ISUPPER, not isupper.
Diffstat (limited to 'gas/doc')
-rw-r--r-- | gas/doc/as.texinfo | 7 | ||||
-rw-r--r-- | gas/doc/c-mmix.texi | 26 |
2 files changed, 23 insertions, 10 deletions
diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo index 3d7fef5..6d04ac4 100644 --- a/gas/doc/as.texinfo +++ b/gas/doc/as.texinfo @@ -1,6 +1,6 @@ \input texinfo @c -*-Texinfo-*- @c Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -@c 2001 +@c 2001, 2002 @c Free Software Foundation, Inc. @c UPDATE!! On future updates-- @c (1) check for new machine-dep cmdline options in @@ -127,7 +127,7 @@ END-INFO-DIR-ENTRY This file documents the GNU Assembler "@value{AS}". @c man begin COPYRIGHT -Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 Free Software Foundation, Inc. +Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 @@ -180,7 +180,7 @@ done. @end tex @vskip 0pt plus 1filll -Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 Free Software Foundation, Inc. +Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 @@ -354,6 +354,7 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}. [@b{--fixed-special-register-names}] [@b{--globalize-symbols}] [@b{--gnu-syntax}] [@b{--relax}] [@b{--no-predefined-symbols}] [@b{--no-expand}] [@b{--no-merge-gregs}] [@b{-x}] + [@b{--linker-allocated-gregs}] @end ifset @ifset PDP11 diff --git a/gas/doc/c-mmix.texi b/gas/doc/c-mmix.texi index dd18765..e3622ac 100644 --- a/gas/doc/c-mmix.texi +++ b/gas/doc/c-mmix.texi @@ -1,4 +1,4 @@ -@c Copyright 2001 Free Software Foundation, Inc. +@c Copyright 2001, 2002 Free Software Foundation, Inc. @c This is part of the GAS manual. @c For copying conditions, see the file as.texinfo. @c MMIX description by Hans-Peter Nilsson, hp@bitrange.com @@ -79,7 +79,15 @@ is specified, and assembly fails otherwise, when an instruction needs to be expanded. It needs to be kept in mind that @code{mmixal} is both an assembler and linker, while @code{@value{AS}} will expand instructions that at link stage can be contracted. (Though linker relaxation isn't yet -implemented in @code{@value{LD}}.) +implemented in @code{@value{LD}}.) The option @samp{-x} also imples +@samp{--linker-allocated-gregs}. + +@cindex @samp{--linker-allocated-gregs} command line option, MMIX +Usually a two-operand-expression (@pxref{GREG-base}) without a matching +@samp{GREG} directive is treated as an error by @code{@value{AS}}. When +the option @samp{--linker-allocated-gregs} is in effect, they are instead +passed through to the linker, which will allocate as many global registers +as is needed. @node MMIX-Expand @section Instruction expansion @@ -381,7 +389,10 @@ Global registers allocated with this directive are allocated in order higher-to-lower within a file. Other than that, the exact order of register allocation and elimination is undefined. For example, the order is undefined when more than one file with such directives are linked -together. +together. With the options @samp{-x} and @samp{--linker-allocated-gregs}, +@samp{GREG} directives for two-operand cases like the one mentioned above +can be omitted. Sufficient global registers will then be allocated by the +linker. @item BYTE @cindex assembler directive BYTE, MMIX @@ -544,10 +555,11 @@ upper-case characters. There's no unicode support. -The following is a list of programs in -@url{http://www-cs-faculty.stanford.edu/~knuth/mmix-news.html} dated -2001-08-25 (md5sum c393470cfc86fac040487d22d2bf0172) that assemble with -@code{mmixal} but do not assemble with @code{@value{AS}}: +The following is a list of programs in @samp{mmix.tar.gz}, available at +@url{http://www-cs-faculty.stanford.edu/~knuth/mmix-news.html}, last +checked with the version dated 2001-08-25 (md5sum +c393470cfc86fac040487d22d2bf0172) that assemble with @code{mmixal} but do +not assemble with @code{@value{AS}}: @table @code @item silly.mms |