[PATCH 5/9] gas: new SPARC architectures: sparc5, v9m and v8plusm.
Jose E. Marchesi
jose.marchesi@oracle.com
Thu Oct 2 16:15:00 GMT 2014
More information about the Binutils mailing list
Thu Oct 2 16:15:00 GMT 2014
- Previous message (by thread): [PATCH 6/9] gas, opcodes: SPARC M7 support: xmpmul, xmontmul and xmontsqr instructions.
- Next message (by thread): [PATCH 5/9] gas: new SPARC architectures: sparc5, v9m and v8plusm.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
This patch adds support for the new SPARC architectures sparc5, v9m and v8plusm to the GNU assembler. These architectures are equivalent and correspond to the Oracle SPARC Architecture 2015 and the M7 cpu. Texinfo manual updated to cover the new -A* and -xarch* command line options. Tested in sparc64-unknown-linux-gnu. gas/ChangeLog: 2014-10-02 Jose E. Marchesi <jose.marchesi@oracle.com> * doc/c-sparc.texi (Sparc-Opts): Document the -Av9m, -Av8plusm, -Asparc5, -xarch=v9m and -xarch=sparc5 command line options. * config/tc-sparc.c (HWS_VM): New define. (HWS2_VM): Likewise. (sparc_arch): New architectures `sparc5', `v9m' and `v8plusm'. --- gas/ChangeLog | 9 +++++++++ gas/config/tc-sparc.c | 9 +++++++++ gas/doc/c-sparc.texi | 25 ++++++++++++++++--------- 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c index 3adddbb..852ee36 100644 --- a/gas/config/tc-sparc.c +++ b/gas/config/tc-sparc.c @@ -234,6 +234,11 @@ enum sparc_arch_types {v6, v7, v8, leon, sparclet, sparclite, sparc86x, v8plus, | HWCAP_MD5 | HWCAP_SHA1 | HWCAP_SHA256 |HWCAP_SHA512 | HWCAP_MPMUL \ | HWCAP_MONT | HWCAP_CRC32C | HWCAP_CBCOND | HWCAP_PAUSE #define HWS_VV HWS_VE | HWCAP_FJFMAU | HWCAP_IMA +#define HWS_VM HWS_VV + +#define HWS2_VM \ + HWCAP2_VIS3B | HWCAP2_ADP | HWCAP2_SPARC5 | HWCAP2_MWAIT \ + | HWCAP2_XMPMUL | HWCAP2_XMONT static struct sparc_arch { char *name; @@ -258,7 +263,9 @@ static struct sparc_arch { { "sparcima", "v9b", v9, 0, 1, HWS_VB|HWCAP_FMAF|HWCAP_IMA, 0 }, { "sparcvis3", "v9b", v9, 0, 1, HWS_VB|HWCAP_FMAF|HWCAP_VIS3|HWCAP_HPC, 0 }, { "sparcvis3r", "v9b", v9, 0, 1, HWS_VB|HWCAP_FMAF|HWCAP_VIS3|HWCAP_HPC|HWCAP_FJFMAU, 0 }, + { "sparc4", "v9b", v9, 0, 1, HWS_VV, 0 }, + { "sparc5", "v9b", v9, 0, 1, HWS_VM, HWS2_VM }, { "leon", "leon", leon, 32, 1, HWS_V8, 0 }, { "sparclet", "sparclet", sparclet, 32, 1, HWS_V8, 0 }, @@ -272,6 +279,7 @@ static struct sparc_arch { { "v8plusd", "v9b", v9, 0, 1, HWCAP_V8PLUS|HWS_VD, 0 }, { "v8pluse", "v9b", v9, 0, 1, HWCAP_V8PLUS|HWS_VE, 0 }, { "v8plusv", "v9b", v9, 0, 1, HWCAP_V8PLUS|HWS_VV, 0 }, + { "v8plusx", "v9b", v9, 0, 1, HWCAP_V8PLUS|HWS_VM, 0 }, { "v9", "v9", v9, 0, 1, HWS_V9, 0 }, { "v9a", "v9a", v9, 0, 1, HWS_VA, 0 }, @@ -280,6 +288,7 @@ static struct sparc_arch { { "v9d", "v9b", v9, 0, 1, HWS_VD, 0 }, { "v9e", "v9b", v9, 0, 1, HWS_VE, 0 }, { "v9v", "v9b", v9, 0, 1, HWS_VV, 0 }, + { "v9x", "v9b", v9, 0, 1, HWS_VM, HWS2_VM }, /* This exists to allow configure.tgt to pass one value to specify both the default machine and default word size. */ diff --git a/gas/doc/c-sparc.texi b/gas/doc/c-sparc.texi index 37a4c1a..6036766 100644 --- a/gas/doc/c-sparc.texi +++ b/gas/doc/c-sparc.texi @@ -62,6 +62,7 @@ is explicitly requested. SPARC v9 is always incompatible with sparclite. @kindex -Av9d @kindex -Av9e @kindex -Av9v +@kindex -Av9m @kindex -Asparc @kindex -Asparcvis @kindex -Asparcvis2 @@ -71,7 +72,7 @@ is explicitly requested. SPARC v9 is always incompatible with sparclite. @kindex -Asparcvis3r @item -Av6 | -Av7 | -Av8 | -Aleon | -Asparclet | -Asparclite @itemx -Av8plus | -Av8plusa | -Av8plusb | -Av8plusc | -Av8plusd | -Av8plusv -@itemx -Av9 | -Av9a | -Av9b | -Av9c | -Av9d | -Av9e | -Av9v +@itemx -Av9 | -Av9a | -Av9b | -Av9c | -Av9d | -Av9e | -Av9v | -Av9m @itemx -Asparc | -Asparcvis | -Asparcvis2 | -Asparcfmaf | -Asparcima @itemx -Asparcvis3 | -Asparcvis3r Use one of the @samp{-A} options to select one of the SPARC @@ -83,9 +84,9 @@ or feature requiring an incompatible or higher level. @samp{-Av8plusd}, and @samp{-Av8plusv} select a 32 bit environment. @samp{-Av9}, @samp{-Av9a}, @samp{-Av9b}, @samp{-Av9c}, @samp{-Av9d}, -@samp{-Av9e} and @samp{-Av9v} select a 64 bit environment and are not -available unless GAS is explicitly configured with 64 bit environment -support. +@samp{-Av9e}, @samp{-Av9v} and @samp{-Av9m} 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 VIS 1.0 extensions. @@ -108,6 +109,10 @@ and @samp{-Av9d}. multiply-add, and integer multiply-add, as well as the instructions enabled by @samp{-Av8pluse} and @samp{-Av9e}. +@samp{-Av8plusm} and @samp{-Av9m} enable the VIS 4.0, subtract extended, +xmpmul, xmontmul and xmontsqr instructions, as well as the instructions +enabled by @samp{-Av8plusv} and @samp{-Av9v}. + @samp{-Asparc} specifies a v9 environment. It is equivalent to @samp{-Av9} if the word size is 64-bit, and @samp{-Av8plus} otherwise. @@ -129,17 +134,19 @@ HPC , and floating point fused multiply-add instructions enabled. @samp{-Asparcvis3r} specifies a v9b environment with the VIS 3.0, HPC, and floating point unfused multiply-add instructions enabled. +@samp{-Asparc5} is equivalent to @samp{-Av9m}. + @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=v9e | -xarch=v9v +@itemx -xarch=v9b | -xarch=v9c | -xarch=v9d | -xarch=v9e | -xarch=v9v | -xarch=v9m @itemx -xarch=sparc | -xarch=sparcvis | -xarch=sparcvis2 @itemx -xarch=sparcfmaf | -xarch=sparcima | -xarch=sparcvis3 -@itemx -xarch=sparcvis3r +@itemx -xarch=sparcvis3r | -xarch=sparc5 For compatibility with the SunOS v9 assembler. These options are equivalent to -Av8plus, -Av8plusa, -Av8plusb, -Av8plusc, -Av8plusd, --Av8plusv, -Av9, -Av9a, -Av9b, -Av9c, -Av9d, -Av9e, -Av9v, -Asparc, --Asparcvis, -Asparcvis2, -Asparcfmaf, -Asparcima, -Asparcvis3, and --Asparcvis3r, respectively. +-Av8plusv, -Av9, -Av9a, -Av9b, -Av9c, -Av9d, -Av9e, -Av9v, -Av9m, +-Asparc, -Asparcvis, -Asparcvis2, -Asparcfmaf, -Asparcima, +-Asparcvis3, and -Asparcvis3r, respectively. @item -bump Warn whenever it is necessary to switch to another level. -- 1.7.10.4
- Previous message (by thread): [PATCH 6/9] gas, opcodes: SPARC M7 support: xmpmul, xmontmul and xmontsqr instructions.
- Next message (by thread): [PATCH 5/9] gas: new SPARC architectures: sparc5, v9m and v8plusm.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list