aboutsummaryrefslogtreecommitdiff
path: root/gas/doc
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2004-03-21 23:50:38 +0000
committerHans-Peter Nilsson <hp@axis.com>2004-03-21 23:50:38 +0000
commit1048a9ba6538d0a1800c330b5011475d2183c798 (patch)
tree55f0b89ddbfc017d6f2d703a932a4a0dc8083c74 /gas/doc
parent95631471e2a5e4a39a26ad271edd037c66ab9c9c (diff)
downloadgdb-1048a9ba6538d0a1800c330b5011475d2183c798.zip
gdb-1048a9ba6538d0a1800c330b5011475d2183c798.tar.gz
gdb-1048a9ba6538d0a1800c330b5011475d2183c798.tar.bz2
* doc/c-cris.texi (CRIS-Opts): Document --no-mul-bug-abort,
--mul-bug-abort and the default behavior. * config/tc-cris.c (cris_insn_kind): New member CRIS_INSN_MUL. (err_for_dangerous_mul_placement): New variable. (STATE_MUL, OPTION_MULBUG_ABORT_ON, OPTION_MULBUG_ABORT_OFF): New macros. (md_cris_relax_table): Have placeholder for STATE_MUL. (md_longopts): New options --mul-bug-abort and --no-mul-bug-abort. (cris_relax_frag) <case ENCODE_RELAX (STATE_MUL, STATE_BYTE)>: New case doing nothing. (md_estimate_size_before_relax) <case ENCODE_RELAX (STATE_MUL, STATE_BYTE)>: Ditto. (md_convert_frag) <ENCODE_RELAX (STATE_MUL, STATE_BYTE)>: Check alignment and position of this frag, emit error message if suspicious. (md_assemble): For a multiply insn and when checking it, transform the current frag into a special frag for that purpose. (md_parse_option) <case OPTION_MULBUG_ABORT_OFF, case OPTION_MULBUG_ABORT_ON>: Handle new options.
Diffstat (limited to 'gas/doc')
-rw-r--r--gas/doc/c-cris.texi19
1 files changed, 19 insertions, 0 deletions
diff --git a/gas/doc/c-cris.texi b/gas/doc/c-cris.texi
index 2551b18..e814767 100644
--- a/gas/doc/c-cris.texi
+++ b/gas/doc/c-cris.texi
@@ -74,6 +74,25 @@ When @option{-N} is specified, @code{@value{AS}} will emit a
warning when a 16-bit branch instruction is expanded into a
32-bit multiple-instruction construct (@pxref{CRIS-Expand}).
+@cindex @option{--no-mul-bug-abort} command line option, CRIS
+@cindex @option{--mul-bug-abort} command line option, CRIS
+@cindex CRIS @option{--no-mul-bug-abort} command line option
+@cindex CRIS @option{--mul-bug-abort} command line option
+
+Some versions of the CRIS v10, for example in the Etrax 100 LX,
+contain a bug that causes destabilizing memory accesses when a
+multiply instruction is executed with certain values in the
+first operand just before a cache-miss. When the
+@option{--mul-bug-abort} command line option is active (the
+default value), @code{@value{AS}} will refuse to assemble a file
+containing a multiply instruction at a dangerous offset, one
+that could be the last on a cache-line, or is in a section with
+insufficient alignment. This placement checking does not catch
+any case where the multiply instruction is dangerously placed
+because it is located in a delay-slot. The
+@option{--mul-bug-abort} command line option turns off the
+checking.
+
@node CRIS-Expand
@section Instruction expansion