The i386 version of as
has a few machine
dependent options:
--32 | --x32 | --64
These options are only available with the ELF object file format, and
require that the necessary BFD support has been included (on a 32-bit
platform you have to add –enable-64-bit-bfd to configure enable 64-bit
usage and use x86-64 as target platform).
-n
--divide
-march=
CPU[+
EXTENSION...]
i8086
,
i186
,
i286
,
i386
,
i486
,
i586
,
i686
,
pentium
,
pentiumpro
,
pentiumii
,
pentiumiii
,
pentium4
,
prescott
,
nocona
,
core
,
core2
,
corei7
,
l1om
,
k1om
,
iamcu
,
k6
,
k6_2
,
athlon
,
opteron
,
k8
,
amdfam10
,
bdver1
,
bdver2
,
bdver3
,
bdver4
,
znver1
,
znver2
,
btver1
,
btver2
,
generic32
and
generic64
.
In addition to the basic instruction set, the assembler can be told to
accept various extension mnemonics. For example,
-march=i686+sse4+vmx
extends i686 with sse4 and
vmx. The following extensions are currently supported:
8087
,
287
,
387
,
687
,
no87
,
no287
,
no387
,
no687
,
cmov
,
nocmov
,
fxsr
,
nofxsr
,
mmx
,
nommx
,
sse
,
sse2
,
sse3
,
ssse3
,
sse4.1
,
sse4.2
,
sse4
,
nosse
,
nosse2
,
nosse3
,
nossse3
,
nosse4.1
,
nosse4.2
,
nosse4
,
avx
,
avx2
,
noavx
,
noavx2
,
adx
,
rdseed
,
prfchw
,
smap
,
mpx
,
sha
,
rdpid
,
ptwrite
,
cet
,
gfni
,
vaes
,
vpclmulqdq
,
prefetchwt1
,
clflushopt
,
se1
,
clwb
,
movdiri
,
movdir64b
,
avx512f
,
avx512cd
,
avx512er
,
avx512pf
,
avx512vl
,
avx512bw
,
avx512dq
,
avx512ifma
,
avx512vbmi
,
avx512_4fmaps
,
avx512_4vnniw
,
avx512_vpopcntdq
,
avx512_vbmi2
,
avx512_vnni
,
avx512_bitalg
,
noavx512f
,
noavx512cd
,
noavx512er
,
noavx512pf
,
noavx512vl
,
noavx512bw
,
noavx512dq
,
noavx512ifma
,
noavx512vbmi
,
noavx512_4fmaps
,
noavx512_4vnniw
,
noavx512_vpopcntdq
,
noavx512_vbmi2
,
noavx512_vnni
,
noavx512_bitalg
,
vmx
,
vmfunc
,
smx
,
xsave
,
xsaveopt
,
xsavec
,
xsaves
,
aes
,
pclmul
,
fsgsbase
,
rdrnd
,
f16c
,
bmi2
,
fma
,
movbe
,
ept
,
lzcnt
,
hle
,
rtm
,
invpcid
,
clflush
,
mwaitx
,
clzero
,
wbnoinvd
,
pconfig
,
waitpkg
,
cldemote
,
lwp
,
fma4
,
xop
,
cx16
,
syscall
,
rdtscp
,
3dnow
,
3dnowa
,
sse4a
,
sse5
,
svme
,
abm
and
padlock
.
Note that rather than extending a basic instruction set, the extension
mnemonics starting with no
revoke the respective functionality.
When the .arch
directive is used with -march, the
.arch
directive will take precedent.
-mtune=
CPUValid CPU values are identical to the processor list of -march=CPU.
-msse2avx
-msse-check=
none-msse-check=
warning-msse-check=
error-mavxscalar=
128-mavxscalar=
256-mvexwig=
0-mvexwig=
1-mevexlig=
128-mevexlig=
256-mevexlig=
512-mevexwig=
0-mevexwig=
1-mmnemonic=
att-mmnemonic=
intel.att_mnemonic
and .intel_mnemonic
directives will
take precedent.
-msyntax=
att-msyntax=
intel.att_syntax
and .intel_syntax
directives will
take precedent.
-mnaked-reg
.att_syntax
and .intel_syntax
directives will take precedent.
-madd-bnd-prefix
-mno-shared
-mbig-obj
-momit-lock-prefix=
no-momit-lock-prefix=
yes-mfence-as-lock-add=
no-mfence-as-lock-add=
yes-mrelax-relocations=
no-mrelax-relocations=
yes-mx86-used-note=
no-mx86-used-note=
yes-mevexrcig=
rne-mevexrcig=
rd-mevexrcig=
ru-mevexrcig=
rz-mamd64
-mintel64
-O0 | -O | -O1 | -O2 | -Os