* doc/c-alpha.texi: Fix typos.
[deliverable/binutils-gdb.git] / gas / doc / c-mmix.texi
index e3622ac64f4359f52c9b024948e90289dce6e9b8..a31fa83e0dd38e4e7b45247bff13081963b47dbc 100644 (file)
@@ -65,7 +65,7 @@ at link time if the operand does not fit.
 The @code{mmixal} documentation (@pxref{mmixsite}) specifies that global
 registers allocated with the @samp{GREG} directive (@pxref{MMIX-greg}) and
 initialized to the same non-zero value, will refer to the same global
-register.  This isn't strictly enforcable in @code{@value{AS}} since the
+register.  This isn't strictly enforceable in @code{@value{AS}} since the
 final addresses aren't known until link-time, but it will do an effort
 unless the @samp{--no-merge-gregs} option is specified.  (Register merging
 isn't yet implemented in @code{@value{LD}}.)
@@ -82,6 +82,21 @@ that at link stage can be contracted.  (Though linker relaxation isn't yet
 implemented in @code{@value{LD}}.)  The option @samp{-x} also imples
 @samp{--linker-allocated-gregs}.
 
+@cindex @samp{--no-pushj-stubs} command line option, MMIX
+@cindex @samp{--no-stubs} command line option, MMIX
+If instruction expansion is enabled, @code{@value{AS}} can expand a
+@samp{PUSHJ} instruction into a series of instructions.  The shortest
+expansion is to not expand it, but just mark the call as redirectable to a
+stub, which @code{@value{LD}} creates at link-time, but only if the
+original @samp{PUSHJ} instruction is found not to reach the target.  The
+stub consists of the necessary instructions to form a jump to the target.
+This happens if @code{@value{AS}} can assert that the @samp{PUSHJ}
+instruction can reach such a stub.  The option @samp{--no-pushj-stubs}
+disables this shorter expansion, and the longer series of instructions is
+then created at assembly-time.  The option @samp{--no-stubs} is a synonym,
+intended for compatibility with future releases, where generation of stubs
+for other instructions may be implemented.
+
 @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
@@ -428,7 +443,7 @@ operand can be omitted, defaulting to a zero value.
 The directives @samp{WYDE}, @samp{TETRA} and @samp{OCTA} emit constants of
 two, four and eight bytes size respectively.  Before anything else happens
 for the directive, the current location is aligned to the respective
-constant-size bondary.  If a label is defined at the beginning of the
+constant-size boundary.  If a label is defined at the beginning of the
 line, its value will be that after the alignment.  A single operand can be
 omitted, defaulting to a zero value emitted for the directive.  Operands
 can be expressed as strings (@pxref{Strings}), in which case each
This page took 0.024209 seconds and 4 git commands to generate.