diff options
author | David S. Miller <davem@redhat.com> | 2011-09-22 00:03:30 +0000 |
---|---|---|
committer | David S. Miller <davem@redhat.com> | 2011-09-22 00:03:30 +0000 |
commit | 4bafe00ecf3e7b63d3b2b23f5406637261c6b391 (patch) | |
tree | 369728fcaa3c78d1b314f969e2ddd139e1964963 /gas/doc | |
parent | a3a129def5d5be57e3766ff7386f238eebd205a1 (diff) | |
download | gdb-4bafe00ecf3e7b63d3b2b23f5406637261c6b391.zip gdb-4bafe00ecf3e7b63d3b2b23f5406637261c6b391.tar.gz gdb-4bafe00ecf3e7b63d3b2b23f5406637261c6b391.tar.bz2 |
Add new sparc options to control instruction availability.
gas/
* config/tc-sparc.c (hwcap_allowed): New.
(struct sparc_arch): New field 'hwcap_allowed' containing a bitmask
of F_FOO flags which are enabled by the particular arch setting.
Add new options that provide explicit access to new instructions.
(md_parse_option): Only bump max_architecture if the requested one
is larger, or this is the first explicit request.
(get_hwcap_name): New function.
(sparc_ip): Validate that hwcaps used by an instruction have actually
been enabled.
* doc/c-sparc.texi: Document new sparc options.
Diffstat (limited to 'gas/doc')
-rw-r--r-- | gas/doc/c-sparc.texi | 78 |
1 files changed, 69 insertions, 9 deletions
diff --git a/gas/doc/c-sparc.texi b/gas/doc/c-sparc.texi index 3f758ad..099c031 100644 --- a/gas/doc/c-sparc.texi +++ b/gas/doc/c-sparc.texi @@ -52,31 +52,91 @@ is explicitly requested. SPARC v9 is always incompatible with sparclite. @table @code @kindex -Av6 -@kindex Av7 +@kindex -Av7 @kindex -Av8 @kindex -Asparclet @kindex -Asparclite @kindex -Av9 @kindex -Av9a +@kindex -Av9b +@kindex -Av9c +@kindex -Av9d +@kindex -Av9v +@kindex -Asparc +@kindex -Asparcvis +@kindex -Asparcvis2 +@kindex -Asparcfmaf +@kindex -Asparcima +@kindex -Asparcvis3 +@kindex -Asparcvis3r @item -Av6 | -Av7 | -Av8 | -Asparclet | -Asparclite -@itemx -Av8plus | -Av8plusa | -Av9 | -Av9a +@itemx -Av8plus | -Av8plusa | -Av8plusb | -Av8plusc | -Av8plusd | -Av8plusv +@itemx -Av9 | -Av9a | -Av9b | -Av9c | -Av9d | -Av9v +@itemx -Asparc | -Asparcvis | -Asparcvis2 | -Asparcfmaf | -Asparcima +@itemx -Asparcvis3 | -Asparcvis3r Use one of the @samp{-A} options to select one of the SPARC architectures explicitly. If you select an architecture explicitly, @code{@value{AS}} reports a fatal error if it encounters an instruction or feature requiring an incompatible or higher level. -@samp{-Av8plus} and @samp{-Av8plusa} select a 32 bit environment. +@samp{-Av8plus}, @samp{-Av8plusa}, @samp{-Av8plusb}, @samp{-Av8plusc}, +@samp{-Av8plusd}, and @samp{-Av8plusv} select a 32 bit environment. -@samp{-Av9} and @samp{-Av9a} select a 64 bit environment and are not -available unless GAS is explicitly configured with 64 bit environment -support. +@samp{-Av9}, @samp{-Av9a}, @samp{-Av9b}, @samp{-Av9c}, @samp{-Av9d}, and +@samp{-Av9v} select a 64 bit environment and are not available unless GAS +is explicitly configured with 64 bit environment support. @samp{-Av8plusa} and @samp{-Av9a} enable the SPARC V9 instruction set with -UltraSPARC extensions. +UltraSPARC VIS 1.0 extensions. -@item -xarch=v8plus | -xarch=v8plusa +@samp{-Av8plusb} and @samp{-Av9b} enable the UltraSPARC VIS 2.0 instructions, +as well as the instructions enabled by @samp{-Av8plusa} and @samp{-Av9a}. + +@samp{-Av8plusc} and @samp{-Av9c} enable the UltraSPARC Niagara instructions, +as well as the instructions enabled by @samp{-Av8plusb} and @samp{-Av9b}. + +@samp{-Av8plusd} and @samp{-Av9d} enable the floating point fused +multiply-add, VIS 3.0, and HPC extension instructions, as well as the +instructions enabled by @samp{-Av8plusc} and @samp{-Av9c}. + +@samp{-Av8plusv} and @samp{-Av9v} enable the 'random', transactional +memory, floating point unfused multiply-add, integer multiply-add, and +cache sparing store instructions, as well as the instructions enabled +by @samp{-Av8plusd} and @samp{-Av9d}. + +@samp{-Asparc} specifies a v9 environment. It is equivalent to +@samp{-Av9} if the word size is 64-bit, and @samp{-Av8plus} otherwise. + +@samp{-Asparcvis} specifies a v9a environment. It is equivalent to +@samp{-Av9a} if the word size is 64-bit, and @samp{-Av8plusa} otherwise. + +@samp{-Asparcvis2} specifies a v9b environment. It is equivalent to +@samp{-Av9b} if the word size is 64-bit, and @samp{-Av8plusb} otherwise. + +@samp{-Asparcfmaf} specifies a v9b environment with the floating point +fused multiply-add instructions enabled. + +@samp{-Asparcima} specifies a v9b environment with the integer +multiply-add instructions enabled. + +@samp{-Asparcvis3} specifies a v9b environment with the VIS 3.0, +HPC , and floating point fused multiply-add instructions enabled. + +@samp{-Asparcvis3r} specifies a v9b environment with the VIS 3.0, +HPC, transactional memory, random, and floating point unfused multiply-add +instructions enabled. + +@item -xarch=v8plus | -xarch=v8plusa | -xarch=v8plusb | -xarch=v8plusc +@itemx -xarch=v8plusd | -xarch=v8plusv | -xarch=v9 | -xarch=v9a +@itemx -xarch=v9b | -xarch=v9c | -xarch=v9d | -xarch=v9v +@itemx -xarch=sparc | -xarch=sparcvis | -xarch=sparcvis2 +@itemx -xarch=sparcfmaf | -xarch=sparcima | -xarch=sparcvis3 +@itemx -xarch=sparcvis3r For compatibility with the SunOS v9 assembler. These options are -equivalent to -Av8plus and -Av8plusa, respectively. +equivalent to -Av8plus, -Av8plusa, -Av8plusb, -Av8plusc, -Av8plusd, +-Av8plusv, -Av9, -Av9a, -Av9b, -Av9c, -Av9d, -Av9v, -Asparc, -Asparcvis, +-Asparcvis2, -Asparcfmaf, -Asparcima, -Asparcvis3, and -Asparcvis3r, +respectively. @item -bump Warn whenever it is necessary to switch to another level. |