Skip to content

Commit 37883fa

Browse files
author
Claudiu Zissulescu
committed
Update documentation with ARCv2HS options
1 parent b4e13ac commit 37883fa

File tree

2 files changed

+117
-26
lines changed

2 files changed

+117
-26
lines changed

gcc/ChangeLog.ARC

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
2013-03-12 Claudiu Zissulescu <[email protected]>
2+
3+
* doc/invoke.texi: Update document with ARCv2HS options.
4+
15
2014-03-06 Claudiu Zissulescu <[email protected]>
26

37
* config/arc/arc.md (movsi_cond_exec): Update pattern.

gcc/doc/invoke.texi

Lines changed: 113 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,7 @@ Objective-C and Objective-C++ Dialects}.
487487

488488
@emph{ARC Options} @gccoptlist{-mbarrel-shifter -mcode-density @gol
489489
-mcpu=@var{cpu} -mA6 -mARC600 -mA7 -mARC700 -mEM -mARCv2EM -mav2em @gol
490+
-mav2hs -mHS -mARCv2HS -matomic -mfpu=@var{fpu} @gol
490491
-mdiv-rem -mdpfp -mdpfp-compact -mdpfp-fast -mno-dpfp-lrsr -mea @gol
491492
-mforce-short -mmpy -mmpy-option=@var{multo} -mmpy16 -mmul32x16 -mmul64 @gol
492493
-mnorm -mspfp -mspfp-compact -mspfp-fast -msimd -msoft-float -mswap @gol
@@ -11158,15 +11159,15 @@ purpose. The default is @option{-m1reg-none}.
1115811159
A range of @samp{-m} options are defined for Synopsys DesignWare ARC.
1115911160
There are two major flavors of the tool chain. The original ARCompact
1116011161
instruction set for the ARC600 and ARC700 families and the ARCompact
11161-
v2 instruction set for the ARC v2 EM family. For the latter the tool
11162-
chain must be built using the configuration option
11163-
@option{--with-cpu=EM}. In general ARC v2 EM options are only
11164-
available when the tool chain has been built using
11165-
@option{--with-cpu=EM}.
11162+
v2 instruction set for the ARC v2 EM or HS family. For the latter the
11163+
tool chain must be built using the configuration option
11164+
@option{--with-cpu=EM}. In general ARC v2 options are only available
11165+
when the tool chain has been configured using @option{--with-cpu=EM},
11166+
@option{--with-cpu=EM}, or using @option{--enable-multilib}.
1116611167

1116711168
ARC is a configurable architecture. Requesting features from the
11168-
compiler that are not provided on a particular hardware
11169-
implementation will result in code that does not work correctly.
11169+
compiler that are not provided on a particular hardware implementation
11170+
will result in code that does not work correctly.
1117011171

1117111172
The following options control the architecture variant for which code
1117211173
is being compiled:
@@ -11194,30 +11195,33 @@ values for @var{cpu} are
1119411195
@opindex mA6
1119511196
@opindex mARC600
1119611197
@item ARC600
11197-
Compile for ARC600. Aliases: @option{-mA6}, @option{-mARC600}. Not
11198-
available when the tool chain is configured with
11199-
@samp{--with-cpu=EM}@.
11198+
Compile for ARC600. Aliases: @option{-mA6}, @option{-mARC600}@.
1120011199

1120111200
@item ARC601
1120211201
@opindex mARC600
11203-
Compile for ARC601. Alias: @option{-mARC601}. Not available when the
11204-
tool chain is configured with @samp{--with-cpu=EM}@.
11202+
Compile for ARC601. Alias: @option{-mARC601}@.
1120511203

1120611204
@item ARC700
1120711205
@opindex mA7
1120811206
@opindex mARC700
1120911207
Compile for ARC700. Aliases: @option{-mA7}, @option{-mARC700}. This
11210-
is the default when configured with @samp{--with-cpu=arc700} and not
11211-
available when the tool chain is configured with
11212-
@samp{--with-cpu=EM}@.
11208+
option is default on when configured with @samp{--with-cpu=arc700}@.
1121311209

1121411210
@item ARCv2EM
1121511211
@opindex mEM
1121611212
@opindex mARCv2EM
1121711213
@opindex mav2em
1121811214
Compile for ARC v2 EM. Aliases: @option{-mEM},
11219-
@option{-mARCv2EM}, @option{-mav2em}. This is the default when the tool chain is configured with
11220-
@samp{--with-cpu=EM}@.
11215+
@option{-mARCv2EM}, @option{-mav2em}. This option is default on when
11216+
the tool chain is configured with @samp{--with-cpu=EM}@.
11217+
11218+
@item ARCv2HS
11219+
@opindex mHS
11220+
@opindex mARCv2HS
11221+
@opindex mav2hs
11222+
Compile for ARC v2 HS cpu family. Aliases: @option{-mHS},
11223+
@option{-mARCv2HS}, @option{-mav2hs}. This option is default on when
11224+
the tool chain is configured with @samp{--with-cpu=HS}@.
1122111225

1122211226
@end table
1122311227

@@ -11226,6 +11230,58 @@ Compile for ARC v2 EM. Aliases: @option{-mEM},
1122611230
Enable DIV/REM instructions for ARC v2 EM. Only available when the
1122711231
tool chain is configured with @samp{--with-cpu=EM}@.
1122811232

11233+
@item -mfpu=@var{fpu}
11234+
@opindex mfpu
11235+
Enables specific floating-point hardware extension for ARCv2
11236+
core. Supported values for @var{fpu} are
11237+
11238+
@table @samp
11239+
11240+
@item fpus
11241+
@opindex fpus
11242+
Enables support for single precision floating point hardware
11243+
extensions@.
11244+
11245+
@item fpud
11246+
@opindex fpud
11247+
Enables support for double precision floating point hardware
11248+
extensions. The single precision floating point extension is also
11249+
enabled@.
11250+
11251+
@item fpus_div
11252+
@opindex fpus_div
11253+
Enables support for single precision floating point, and single
11254+
precision square-root and divide hardware extensions@.
11255+
11256+
@item fpud_div
11257+
@opindex fpud_div
11258+
Enables support for double precision floating point, and double
11259+
precision square-root and divide hardware extensions. This option
11260+
includes option @samp{fpus_div}@.
11261+
11262+
@item fpus_fma
11263+
@opindex fpus_fma
11264+
Enables support for single precision floating point, and single
11265+
precision fused multiple and add hardware extensions@.
11266+
11267+
@item fpud_fma
11268+
@opindex fpud_fma
11269+
Enables support for double precision floating point, and double
11270+
precision fused multiple and add hardware extensions. This option
11271+
includes option @samp{fpus_fma}@.
11272+
11273+
@item fpus_all
11274+
@opindex fpus_all
11275+
Enables support for all single precision floating point hardware
11276+
extensions@.
11277+
11278+
@item fpud_all
11279+
@opindex fpud_all
11280+
Enables support for all single and double precision floating point
11281+
hardware extensions@.
11282+
11283+
@end table
11284+
1122911285
@item -mdpfp
1123011286
@opindex mdpfp
1123111287
@itemx -mdpfp-compact
@@ -11273,36 +11329,62 @@ No multiplier available.
1127311329

1127411330
@item 1
1127511331
@itemx w
11276-
The multiply option is set to w: 16x16 multiplier, fully pipelined.
11332+
The multiply option is set to w: 16x16 multiplier, fully
11333+
pipelined. The following instructions are enabled: MPYW, and MPYUW.
1127711334

1127811335
@item 2
1127911336
@itemx wlh1
11280-
The multiply option is set to wlh1: 32x32 multiplier, fully pipelined(1 stage).
11337+
The multiply option is set to wlh1: 32x32 multiplier, fully
11338+
pipelined(1 stage). The following instructions are additionaly
11339+
enabled: MPY, MPYU, MPYM, MPYMU, and MPY_S.
1128111340

1128211341
@item 3
1128311342
@itemx wlh2
1128411343
The multiply option is set to wlh2: 32x32 multiplier, fully pipelined
11285-
(2 stages).
11344+
(2 stages). The following instructions are additionaly enabled: MPY,
11345+
MPYU, MPYM, MPYMU, and MPY_S.
1128611346

1128711347
@item 4
1128811348
@itemx wlh3
1128911349
The multiply option is set to wlh3: Two 16x16 multiplier, blocking,
11290-
sequential.
11350+
sequential. The following instructions are additionaly enabled: MPY,
11351+
MPYU, MPYM, MPYMU, and MPY_S.
1129111352

1129211353
@item 5
1129311354
@itemx wlh4
1129411355
The multiply option is set to wlh4: One 16x16 multiplier, blocking,
11295-
sequential.
11356+
sequential. The following instructions are additionaly enabled: MPY,
11357+
MPYU, MPYM, MPYMU, and MPY_S.
1129611358

1129711359
@item 6
1129811360
@itemx wlh5
1129911361
The multiply option is set to wlh5: One 32x4 multiplier, blocking,
11300-
sequential.
11362+
sequential. The following instructions are additionaly enabled: MPY,
11363+
MPYU, MPYM, MPYMU, and MPY_S.
11364+
11365+
@item 7
11366+
@itemx short vector
11367+
The multiply option is set to accept short vector extensions (i.e., 32
11368+
bit vectors). The following instructions are additionaly enabled: MAC,
11369+
MACU, DMPYH, DMPYHU, DMACH, DMACHU, VADD2H, VSUB2H, VADDSUB2H, and
11370+
VSUBADD2H.
11371+
11372+
@item 8
11373+
@itemx double MAC
11374+
The multiply option is set to accept short vector extensions, and
11375+
double MAC operations. The following instructions are additionaly
11376+
enabled: MPYD, MPYDU, MACD, MACDU, VMPY2H, and VMPY2HU.
11377+
11378+
@item 8
11379+
@itemx 64 bit
11380+
The multiply option is set to accept 64 bit operations. The following
11381+
instructions are additionaly enabled: QMPYH, QMPYHU, DMPYWH, DMPYWHU,
11382+
QMACH, QMACHU, DMACWH, DMACWHU, VADD4H, VSUB4H, VADDSUB4H, VSUBADD4H,
11383+
VADD2, VSUB2, VADDSUB, and VSUBADD.
1130111384

1130211385
@end table
1130311386

11304-
This option is only available when the tool chain is configured with
11305-
@samp{--with-cpu=EM}@.
11387+
This option is only available for ARCv2 cores@.
1130611388

1130711389
@item -mmpy16
1130811390
@opindex mmpy16
@@ -11352,6 +11434,11 @@ can overridden by FPX options; @samp{mspfp}, @samp{mspfp-compact}, or
1135211434
@opindex mswap
1135311435
Generate swap instructions.
1135411436

11437+
@item -matomic
11438+
@opindex matomic
11439+
This enables Locked Load/Store Conditional extension, and to use them
11440+
for implementing the GCC's atomic builtins.
11441+
1135511442
@end table
1135611443

1135711444
The following options are passed through to the assembler, and also
@@ -11375,7 +11462,7 @@ extension. Also sets the preprocessor symbol @code{__Xdvbf}.
1137511462
@opindex mlock
1137611463
Passed down to the assembler to enable the Locked Load/Store
1137711464
Conditional extension. Also sets the preprocessor symbol
11378-
@code{__Xlock}.
11465+
@code{__Xlock}. This option is deprecated, please use matomic instead.
1137911466

1138011467
@item -mmac-d16
1138111468
@opindex mmac-d16

0 commit comments

Comments
 (0)