as AS - 휴대용 GNU 어셈블러.
as [-a[cdghlns][=file]] [--alternate] [--compress-debug-sections] [--nocompress-debug-sections] [-D] [--dump-config] [--debug-prefix-map old=new] [--defsym sym=val] [--elf-stt-common=[no|yes]] [--emulation=name] [-f] [-g] [--gstabs] [--gstabs+] [--gdwarf-<N>] [--gdwarf-sections] [--gdwarf-cie-version=VERSION] [--generate-missing-build-notes=[no|yes]] [--gsframe] [--hash-size=N] [--help] [--target-help] [-I dir] [-J] [-K] [--keep-locals] [-L] [--listing-lhs-width=NUM] [--listing-lhs-width2=NUM] [--listing-rhs-width=NUM] [--listing-cont-lines=NUM] [--multibyte-handling=[allow|warn|warn-sym-only]] [--no-pad-sections] [-o objfile] [-R] [--sectname-subst] [--size-check=[error|warning]] [--statistics] [-v] [-version] [--version] [-W] [--warn] [--fatal-warnings] [-w] [-x] [-Z] [@FILE] [target-options] [--|files ...]
대상 AArch64 옵션:
[-EB|-EL] [-mabi=ABI]
타겟 알파 옵션:
[-mcpu] [-mdebug | -no-mdebug] [-replace | -noreplace] [-relax] [-g] [-Gsize] [-F] [-32addr]
대상 ARC 옵션:
[-mcpu=cpu] [-mA6|-mARC600|-mARC601|-mA7|-mARC700|-mEM|-mHS] [-mcode-density] [-mrelax] [-EB|-EL]
대상 ARM 옵션:
[-mcpu=processor[+extension...]] [-march=architecture[+extension...]] [-mfpu=floating-point-format] [-mfloat-abi=abi] [-meabi=ver] [-mthumb] [-EB|-EL] [-mapcs-32|-mapcs-26|-mapcs-float| -mapcs-reentrant] [-mthumb-interwork] [-k]
대상 Blackfin 옵션:
[-mcpu=processor[-sirevision]] [-mfdpic] [-mno-fdpic] [-mnopic]
대상 BPF 옵션:
[-EL] [-EB]
대상 CRIS 옵션:
[--underscore | --no-underscore] [--pic] [-N] [--emulation=criself | --emulation=crisaout] [--march=v0_v10 | --march=v10 | --march=v32 | --march=common_v10_v32]
대상 C-SKY 옵션:
[-march=arch] [-mcpu=cpu] [-EL] [-mlittle-endian] [-EB] [-mbig-endian] [-fpic] [-pic] [-mljump] [-mno-ljump] [-force2bsr] [-mforce2bsr] [-no-force2bsr] [-mno-force2bsr] [-jsri2bsr] [-mjsri2bsr] [-no-jsri2bsr ] [-mno-jsri2bsr] [-mnolrw ] [-mno-lrw] [-melrw] [-mno-elrw] [-mlaf ] [-mliterals-after-func] [-mno-laf] [-mno-literals-after-func] [-mlabr] [-mliterals-after-br] [-mno-labr] [-mnoliterals-after-br] [-mistack] [-mno-istack] [-mhard-float] [-mmp] [-mcp] [-mcache] [-msecurity] [-mtrust] [-mdsp] [-medsp] [-mvdsp]
대상 D10V 옵션:
[-O]
대상 D30V 옵션:
[-O|-n|-N]
목표 EPIPHANY 옵션:
[-mepiphany|-mepiphany16]
대상 H8/300 옵션:
[-h-tick-hex]
대상 i386 옵션:
[--32|--x32|--64] [-n] [-march=CPU[+EXTENSION...]] [-mtune=CPU]
대상 IA-64 옵션:
[-mconstant-gp|-mauto-pic] [-milp32|-milp64|-mlp64|-mp64] [-mle|mbe] [-mtune=itanium1|-mtune=itanium2] [-munwind-check=warning|-munwind-check=error] [-mhint.b=ok|-mhint.b=warning|-mhint.b=error] [-x|-xexplicit] [-xauto] [-xdebug]
대상 IP2K 옵션:
[-mip2022|-mip2022ext]
대상 M32C 옵션:
[-m32c|-m16c] [-relax] [-h-tick-hex]
대상 M32R 옵션:
[--m32rx|--[no-]warn-explicit-parallel-conflicts| --W[n]p]
대상 M680X0 옵션:
[-l] [-m68000|-m68010|-m68020|...]
대상 M68HC11 옵션:
[-m68hc11|-m68hc12|-m68hcs12|-mm9s12x|-mm9s12xg] [-mshort|-mlong] [-mshort-double|-mlong-double] [--force-long-branches] [--short-branches] [--strict-direct-mode] [--print-insn-syntax] [--print-opcodes] [--generate-example]
목표 MCORE 옵션:
[-jsri2bsr] [-sifilter] [-relax] [-mcpu=[210|340]]
타겟 메타 옵션:
[-mcpu=cpu] [-mfpu=cpu] [-mdsp=cpu]
대상 MICROBLAZE 옵션:
대상 MIPS 옵션:
[-nocpp] [-EL] [-EB] [-O[optimization level]] [-g[debug level]] [-G num] [-KPIC] [-call_shared] [-non_shared] [-xgot [-mvxworks-pic] [-mabi=ABI] [-32] [-n32] [-64] [-mfp32] [-mgp32] [-mfp64] [-mgp64] [-mfpxx] [-modd-spreg] [-mno-odd-spreg] [-march=CPU] [-mtune=CPU] [-mips1] [-mips2] [-mips3] [-mips4] [-mips5] [-mips32] [-mips32r2] [-mips32r3] [-mips32r5] [-mips32r6] [-mips64] [-mips64r2] [-mips64r3] [-mips64r5] [-mips64r6] [-construct-floats] [-no-construct-floats] [-mignore-branch-isa] [-mno-ignore-branch-isa] [-mnan=encoding] [-trap] [-no-break] [-break] [-no-trap] [-mips16] [-no-mips16] [-mmips16e2] [-mno-mips16e2] [-mmicromips] [-mno-micromips] [-msmartmips] [-mno-smartmips] [-mips3d] [-no-mips3d] [-mdmx] [-no-mdmx] [-mdsp] [-mno-dsp] [-mdspr2] [-mno-dspr2] [-mdspr3] [-mno-dspr3] [-mmsa] [-mno-msa] [-mxpa] [-mno-xpa] [-mmt] [-mno-mt] [-mmcu] [-mno-mcu] [-mcrc] [-mno-crc] [-mginv] [-mno-ginv] [-mloongson-mmi] [-mno-loongson-mmi] [-mloongson-cam] [-mno-loongson-cam] [-mloongson-ext] [-mno-loongson-ext] [-mloongson-ext2] [-mno-loongson-ext2] [-minsn32] [-mno-insn32] [-mfix7000] [-mno-fix7000] [-mfix-rm7000] [-mno-fix-rm7000] [-mfix-vr4120] [-mno-fix-vr4120] [-mfix-vr4130] [-mno-fix-vr4130] [-mfix-r5900] [-mno-fix-r5900] [-mdebug] [-no-mdebug] [-mpdr] [-mno-pdr]
대상 MMIX 옵션:
[--fixed-special-register-names] [--globalize-symbols] [--gnu-syntax] [--relax] [--no-predefined-symbols] [--no-expand] [--no-merge-gregs] [-x] [--linker-allocated-gregs]
대상 Nios II 옵션:
[-relax-all] [-relax-section] [-no-relax] [-EB] [-EL]
대상 NDS32 옵션:
[-EL] [-EB] [-O] [-Os] [-mcpu=cpu] [-misa=isa] [-mabi=abi] [-mall-ext] [-m[no-]16-bit] [-m[no-]perf-ext] [-m[no-]perf2-ext] [-m[no-]string-ext] [-m[no-]dsp-ext] [-m[no-]mac] [-m[no-]div] [-m[no-]audio-isa-ext] [-m[no-]fpu-sp-ext] [-m[no-]fpu-dp-ext] [-m[no-]fpu-fma] [-mfpu-freg=FREG] [-mreduced-regs] [-mfull-regs] [-m[no-]dx-regs] [-mpic] [-mno-relax] [-mb2bb]
대상 PDP11 옵션:
[-mpic|-mno-pic] [-mall] [-mno-extensions] [-mextension|-mno-extension] [-mcpu] [-mmachine]
대상 picoJava 옵션:
[-mb|-me]
대상 PowerPC 옵션:
[-a32|-a64] [-mpwrx|-mpwr2|-mpwr|-m601|-mppc|-mppc32|-m603|-m604|-m403|-m405| -m440|-m464|-m476|-m7400|-m7410|-m7450|-m7455|-m750cl|-mgekko| -mbroadway|-mppc64|-m620|-me500|-e500x2|-me500mc|-me500mc64|-me5500| -me6500|-mppc64bridge|-mbooke|-mpower4|-mpwr4|-mpower5|-mpwr5|-mpwr5x| -mpower6|-mpwr6|-mpower7|-mpwr7|-mpower8|-mpwr8|-mpower9|-mpwr9-ma2| -mcell|-mspe|-mspe2|-mtitan|-me300|-mcom] [-many] [-maltivec|-mvsx|-mhtm|-mvle] [-mregnames|-mno-regnames] [-mrelocatable|-mrelocatable-lib|-K PIC] [-memb] [-mlittle|-mlittle-endian|-le|-mbig|-mbig-endian|-be] [-msolaris|-mno-solaris] [-nops=count]
대상 PRU 옵션:
[-link-relax] [-mnolink-relax] [-mno-warn-regname-label]
대상 RISC-V 옵션:
[-fpic|-fPIC|-fno-pic] [-march=ISA] [-mabi=ABI] [-mlittle-endian|-mbig-endian]
대상 RL78 옵션:
[-mg10] [-m32bit-doubles|-m64bit-doubles]
대상 RX 옵션:
[-mlittle-endian|-mbig-endian] [-m32bit-doubles|-m64bit-doubles] [-muse-conventional-section-names] [-msmall-data-limit] [-mpid] [-mrelax] [-mint-register=number] [-mgcc-abi|-mrx-abi]
대상 s390 옵션:
[-m31|-m64] [-mesa|-mzarch] [-march=CPU] [-mregnames|-mno-regnames] [-mwarn-areg-zero]
목표 점수 옵션:
[-EB][-EL][-FIXDD][-NWARN] [-SCORE5][-SCORE5U][-SCORE7][-SCORE3] [-march=score7][-march=score3] [-USE_R1][-KPIC][-O0][-G num][-V]
대상 SPARC 옵션:
[-Av6|-Av7|-Av8|-Aleon|-Asparclet|-Asparclite -Av8plus|-Av8plusa|-Av8plusb|-Av8plusc|-Av8plusd -Av8plusv|-Av8plusm|-Av9|-Av9a|-Av9b|-Av9c -Av9d|-Av9e|-Av9v|-Av9m|-Asparc|-Asparcvis -Asparcvis2|-Asparcfmaf|-Asparcima|-Asparcvis3 -Asparcvisr|-Asparc5] [-xarch=v8plus|-xarch=v8plusa]|-xarch=v8plusb|-xarch=v8plusc -xarch=v8plusd|-xarch=v8plusv|-xarch=v8plusm|-xarch=v9 -xarch=v9a|-xarch=v9b|-xarch=v9c|-xarch=v9d|-xarch=v9e -xarch=v9v|-xarch=v9m|-xarch=sparc|-xarch=sparcvis -xarch=sparcvis2|-xarch=sparcfmaf|-xarch=sparcima -xarch=sparcvis3|-xarch=sparcvisr|-xarch=sparc5 -bump] [-32|-64] [--enforce-aligned-data][--dcti-couples-detect]
대상 TIC54X 옵션:
[-mcpu=54[123589]|-mcpu=54[56]lp] [-mfar-mode|-mf] [-merrors-to-file <filename>|-me <filename>]
대상 TIC6X 옵션:
[-march=arch] [-mbig-endian|-mlittle-endian] [-mdsbt|-mno-dsbt] [-mpid=no|-mpid=near|-mpid=far] [-mpic|-mno-pic]
대상 TILE-Gx 옵션:
[-m32|-m64][-EB][-EL]
대상 Visium 옵션:
[-mtune=arch]
대상 Xtensa 옵션:
[--[no-]text-section-literals] [--[no-]auto-litpools] [--[no-]absolute-literals] [--[no-]target-align] [--[no-]longcalls] [--[no-]transform] [--rename-section oldname=newname] [--[no-]trampolines] [--abi-windowed|--abi-call0]
대상 Z80 옵션:
[-march=CPU[-EXT][+EXT]] [-local-prefix=PREFIX] [-colonless] [-sdcc] [-fp-s=FORMAT] [-fp-d=FORMAT]
GNU as는 실제로 어셈블러 제품군입니다. 하나의 아키텍처에서 GNU 어셈블러를 사용(또는 사용)했다면 다른 아키텍처에서 사용할 때 상당히 유사한 환경을 찾아야 합니다. 각 버전은 개체 파일 형식, 대부분의 어셈블러 지시문(종종 pseudo-ops이라고 함) 및 어셈블러 구문을 포함하여 다른 버전과 공통점이 많습니다.
as는 주로 링커 ld에서 사용하기 위해 GNU C 컴파일러 gcc의 출력을 어셈블하기 위한 것입니다. 그럼에도 불구하고 우리는 같은 기계의 다른 어셈블러가 조립할 모든 것을 올바르게 어셈블하도록 as 만들려고 노력했습니다. 모든 예외는 명시적으로 문서화됩니다. 이것은 as가 동일한 아키텍처에 대해 다른 어셈블러와 항상 동일한 구문을 사용한다는 의미는 아닙니다. 예를 들어 680x0 어셈블리 언어 구문의 여러 호환되지 않는 버전을 알고 있습니다.
다른 이름으로 실행할 때마다 정확히 하나의 소스 프로그램을 어셈블합니다. 소스 프로그램은 하나 이상의 파일로 구성됩니다. (표준 입력도 파일입니다.)
입력 파일 이름이 0개 이상인 명령줄을 as로 제공합니다. 입력 파일을 읽습니다(왼쪽 파일 이름에서 오른쪽으로). 특별한 의미가 없는 명령줄 인수(모든 위치)는 입력 파일 이름으로 간주됩니다.
파일 이름을 as 지정하지 않으면 일반적으로 터미널인 as 표준 입력에서 하나의 입력 파일을 읽으려고 시도합니다. 어셈블할 프로그램이 더 이상 없다고 as 알리기 위해 ctl-D를 입력해야 할 수도 있습니다.
명령줄에서 표준 입력 파일의 이름을 명시적으로 지정해야 하는 경우 --를 사용하십시오.
소스가 비어 있으면 as는 작고 비어 있는 개체 파일을 생성합니다.
as는 표준 오류 파일(일반적으로 터미널)에 경고 및 오류 메시지를 작성할 수 있습니다. 컴파일러가 자동으로 as로 실행될 때는 이런 일이 발생하지 않아야 합니다. 경고는 as가 결함이 있는 프로그램을 계속 조립할 수 있도록 만들어진 가정을 보고합니다. 오류는 어셈블리를 중지시키는 심각한 문제를 보고합니다.
GNU C 컴파일러를 통해 as를 호출하는 경우 -Wa 옵션을 사용하여 어셈블러에 인수를 전달할 수 있습니다. 어셈블러 인수는 쉼표로 서로(및 -Wa) 구분해야 합니다. 예를 들어:
gcc -c -g -O -Wa,-alh,-L file.c
이렇게 하면 어셈블러에 두 가지 옵션이 전달됩니다. -alh(높은 수준 및 어셈블리 소스가 있는 목록을 표준 출력으로 내보냄) 및 -L(기호 테이블에 로컬 기호 유지) ).
일반적으로 이 -Wa 메커니즘을 사용할 필요가 없습니다. 많은 컴파일러 명령줄 옵션이 컴파일러에 의해 자동으로 어셈블러로 전달되기 때문입니다. (-v 옵션을 사용하여 GNU 컴파일러 드라이버를 호출하면 어셈블러를 포함하여 각 컴파일 패스에 전달되는 옵션을 정확하게 확인할 수 있습니다.)
파일에서 명령줄 옵션을 읽습니다. 원래 @file 옵션 대신 읽은 옵션이 삽입됩니다. 파일이 존재하지 않거나 읽을 수 없는 경우 옵션은 문자 그대로 처리되며 제거되지 않습니다. 파일의 옵션은 공백으로 구분됩니다. 전체 옵션을 작은따옴표나 큰따옴표로 묶어서 옵션에 공백 문자를 포함할 수 있습니다. 포함할 문자 앞에 백슬래시를 추가하여 모든 문자(백슬래시 포함)를 포함할 수 있습니다. 파일 자체에 추가 @파일 옵션이 포함될 수 있습니다. 이러한 옵션은 재귀적으로 처리됩니다.
다음과 같은 다양한 방법으로 목록을 켭니다.
거짓 조건 생략
디버깅 지시문 생략
전달된 버전 및 옵션과 같은 일반 정보 포함
높은 수준의 소스 포함
어셈블리 포함
매크로 확장 포함
양식 처리 생략
기호 포함
목록 파일의 이름 설정
이러한 옵션을 결합할 수 있습니다. 예를 들어 양식 처리 없이 어셈블리 목록에 -aln을 사용합니다. =file 옵션을 사용하는 경우 마지막 옵션이어야 합니다. -a 자체는 -ahls로 기본 설정됩니다.
대체 매크로 모드에서 시작합니다.
ELF ABI에서 SHF_COMPRESSED와 함께 zlib를 사용하여 DWARF 디버그 섹션을 압축합니다. 결과 개체 파일은 이전 링커 및 개체 파일 유틸리티와 호환되지 않을 수 있습니다. 압축이 주어진 섹션을 더 크게 만들면 압축되지 않습니다.
이 옵션은 DWARF 디버그 섹션이 압축되는 방식을 제어합니다. --compress-debug-sections=none은 --nocompress-debug-sections와 동일합니다. --compress-debug-sections=zlib 및 --compress-debug-sections=zlib-gabi는 --compress-debug-sections와 동일합니다. 강한>. --compress-debug-sections=zlib-gnu는 사용되지 않는 zlib-gnu 형식을 사용하여 DWARF 디버그 섹션을 압축합니다. 디버그 섹션은 .zdebug로 시작하도록 이름이 변경되었습니다. --compress-debug-sections=zstd는 zstd를 사용하여 DWARF 디버그 섹션을 압축합니다. 참고 - 압축이 실제로 섹션을 더 크게 만들면 압축되거나 이름이 변경되지 않습니다.
DWARF 디버그 섹션을 압축하지 마십시오. 이것은 일반적으로 x86/x86_64를 제외한 모든 대상의 기본값이지만 구성 시간 옵션을 사용하여 이를 재정의할 수 있습니다.
지원되는 경우 대상 특정 백엔드에서 디깅을 활성화합니다. 그렇지 않으면 무시됩니다. 무시하더라도 이 옵션은 다른 어셈블러에 대한 호출과의 스크립트 호환성을 위해 허용됩니다.
old 디렉토리에서 파일을 어셈블할 때 대신 new에서 설명하는 디버깅 정보를 기록하십시오.
입력 파일을 어셈블하기 전에 기호 sym을 value로 정의하십시오. 값은 정수 상수여야 합니다. C에서와 같이 선행 0x는 16진수 값을 나타내고 선행 0은 8진수 값을 나타냅니다. 심볼의 값은 .set 의사 연산을 사용하여 소스 파일 내에서 무시할 수 있습니다.
어셈블러가 구성되고 종료되는 방법을 표시합니다.
이 옵션은 ELF 어셈블러가 STT_COMMON 유형의 일반 기호를 생성해야 하는지 여부를 제어합니다. 기본값은 --enable-elf-stt-common 구성 옵션으로 제어할 수 있습니다.
어셈블러가 여러 다른 대상 구성을 지원하도록 구성된 경우 이 옵션을 사용하여 원하는 형식을 선택할 수 있습니다.
빠름---공백 및 주석 전처리를 건너뜁니다(소스가 컴파일러 출력이라고 가정).
대상에서 선호하는 디버그 형식을 사용하여 각 어셈블러 소스 라인에 대한 디버깅 정보를 생성합니다. 이는 현재 STABS, ECOFF 또는 DWARF2를 의미합니다. 디버그 형식이 DWARF인 경우 .debug_info 및 .debug_line 섹션은 어셈블리 파일이 자체적으로 생성하지 않는 경우에만 생성됩니다.
각 어셈블러 라인에 대한 stabs 디버깅 정보를 생성합니다. 디버거에서 처리할 수 있는 경우 어셈블러 코드 디버깅에 도움이 될 수 있습니다.
아마도 gdb만이 처리할 수 있고 다른 디버거를 충돌시키거나 프로그램 읽기를 거부할 수 있는 GNU 확장을 사용하여 각 어셈블러 라인에 대한 stabs 디버깅 정보를 생성하십시오. 이는 어셈블러 코드 디버깅에 도움이 될 수 있습니다. 현재 유일한 GNU 확장은 조립 시 현재 작업 디렉토리의 위치입니다.
각 어셈블러 라인에 대한 DWARF2 디버깅 정보를 생성합니다. 디버거에서 처리할 수 있는 경우 어셈블러 코드 디버깅에 도움이 될 수 있습니다. 참고---이 옵션은 모든 대상이 아닌 일부 대상에서만 지원됩니다.
이 옵션은 DWARF 사양 버전 3에 따라 추가 디버그 정보 생성 가능성을 허용한다는 점을 제외하면 --gdwarf-2 옵션과 동일합니다. 참고 - 이 옵션을 활성화한다고 해서 추가 정보가 생성되는 것은 아닙니다. 대상별로 선택해야 합니다.
이 옵션은 DWARF 사양 버전 4에 따라 추가 디버그 정보 생성 가능성을 허용한다는 점을 제외하면 --gdwarf-2 옵션과 동일합니다. 참고 - 이 옵션을 활성화한다고 해서 추가 정보가 생성되는 것은 아닙니다. 대상별로 선택해야 합니다.
이 옵션은 DWARF 사양 버전 5에 따라 추가 디버그 정보 생성 가능성을 허용한다는 점을 제외하면 --gdwarf-2 옵션과 동일합니다. 참고 - 이 옵션을 활성화한다고 해서 추가 정보가 생성되는 것은 아닙니다. 대상별로 선택해야 합니다.
.debug_line 섹션을 만드는 대신 일련의 .debug_line.foo 섹션을 만듭니다. 여기서 foo는 해당 코드 섹션의 이름입니다. 예를 들어 .text.func라는 코드 섹션은 .debug_line.text.func라는 섹션에 작은 줄 번호 정보를 배치합니다. 코드 섹션이 .text라고 하면 디버그 라인 섹션은 여전히 접미사 없이 .debug_line만 호출됩니다.
생성되는 DWARF CIE(Common Information Entries)의 버전을 제어합니다. 이 플래그가 지정되지 않은 경우 기본값은 버전 1이지만 일부 대상은 이 기본값을 수정할 수 있습니다. 버전의 다른 가능한 값은 3 또는 4입니다.
이 옵션은 입력 소스에 아무 것도 없는 경우 ELF 어셈블러가 GNU 빌드 속성 노트를 생성해야 하는지 여부를 제어합니다. 기본값은 --enable-generate-build-notes 구성 옵션으로 제어할 수 있습니다.
CFI 지시문에서 .sframe 섹션을 만듭니다.
무시됨. 다른 어셈블러와의 명령줄 호환성을 위해 지원됩니다.
명령줄 옵션 요약을 인쇄하고 종료합니다.
모든 대상 특정 옵션의 요약을 인쇄하고 종료합니다.
.include 지시문에 대한 검색 목록에 디렉토리 dir을 추가합니다.
부호 있는 오버플로에 대해 경고하지 않습니다.
긴 변위에 대해 차이 테이블이 변경되면 경고를 발행합니다.
(심볼 테이블에서) 로컬 심볼을 유지합니다. 이러한 기호는 일반적으로 ELF 시스템의 경우 .L, 전통적인 a.out 시스템의 경우 L과 같이 시스템별 로컬 레이블 접두어로 시작합니다.
어셈블러 목록에 대한 출력 데이터 열의 최대 너비를 숫자로 설정합니다.
어셈블러 목록의 연속 행에 대한 출력 데이터 열의 최대 너비를 숫자로 설정합니다.
목록에 표시되는 입력 소스 행의 최대 너비를 숫자바이트로 설정합니다.
단일 입력 라인에 대해 목록에 인쇄되는 최대 라인 수를 숫자 + 1로 설정합니다.
어셈블러가 입력에서 멀티바이트 문자를 처리하는 방법을 제어합니다. 기본값(allow 인수를 사용하여 복원할 수 있음)은 불만 없이 이러한 문자를 허용하는 것입니다. warn 인수를 사용하면 멀티바이트 문자가 나타날 때마다 어셈블러가 경고 메시지를 생성합니다. warn-sym-only 인수를 사용하면 기호가 멀티바이트 문자를 포함하는 이름으로 정의된 경우에만 경고가 생성됩니다. (정의되지 않은 기호에 대한 참조는 경고를 생성하지 않습니다).
출력 섹션의 끝을 해당 섹션의 맞춤에 패딩하기 위해 어셈블러를 중지합니다. 기본값은 섹션을 채우는 것이지만 이것은 메모리 제약이 엄격한 대상에 필요할 수 있는 공간을 낭비할 수 있습니다.
as objfile에서 개체 파일 출력의 이름을 지정합니다.
데이터 섹션을 텍스트 섹션으로 접습니다.
무시됨. 어셈블러와 링커 모두에 동일한 옵션을 제공하는 도구와의 호환성을 위해 지원됩니다.
섹션 이름의 대체 시퀀스를 존중합니다.
잘못된 ELF .size 지시문에 대해 오류 또는 경고를 발행합니다.
어셈블리에서 사용한 최대 공간(바이트)과 총 시간(초)을 인쇄합니다.
나가는 기호 테이블에서 로컬 절대 기호를 제거합니다.
as 버전을 인쇄합니다.
as 버전을 인쇄하고 종료합니다.
경고 메시지를 억제합니다.
경고를 오류로 취급하십시오.
경고 메시지를 표시하지 않거나 오류로 처리하지 마십시오.
무시됨.
무시됨.
오류가 발생한 후에도 개체 파일을 생성합니다.
표준 입력 또는 어셈블할 소스 파일.
ARM 아키텍처(AArch64)의 64비트 모드에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
이 옵션은 어셈블러에서 생성된 출력이 big-endian 프로세서용으로 인코딩된 것으로 표시되어야 함을 지정합니다.
이 옵션은 어셈블러에서 생성된 출력이 little-endian 프로세서용으로 인코딩된 것으로 표시되어야 함을 지정합니다.
소스 코드에서 사용하는 ABI를 지정합니다. 인식되는 인수는 ilp32 및 lp64이며 각각 ELF32 및 ELF64 형식으로 생성된 개체 파일을 결정합니다. 기본값은 lp64입니다.
이 옵션은 대상 프로세서를 지정합니다. 어셈블러는 대상 프로세서에서 실행되지 않는 명령을 어셈블하려고 시도하는 경우 오류 메시지를 발행합니다. 다음 프로세서 이름이 인식됩니다: cortex-a34, cortex-a35, cortex-a53, cortex-a55 , cortex-a57, cortex-a65, cortex-a65ae, cortex-a72, cortex- a73, cortex-a75, cortex-a76, cortex-a76ae, cortex-a77, cortex-a78, cortex-a78ae, cortex-a78c, cortex-a510, cortex-a710 , ares, exynos-m1, falkor, neoverse-n1, neoverse- n2, neoverse-e1, neoverse-v1, qdf24xx, saphira, thunderx , vulcan, xgene1 xgene2, cortex-r82, cortex-x1 및 cortex-x2.
특수 이름 all을 사용하여 어셈블러가 모든 선택적 확장을 포함하여 지원되는 모든 프로세서에 유효한 명령을 수락할 수 있습니다. 기본 명령어 세트 외에도 프로세서를 확장하는 다양한 확장 니모닉을 수락하거나 제한하도록 어셈블러에 지시할 수 있습니다. 특정 프로세서의 일부 구현에 확장이 있을 수 있는 경우 해당 확장이 자동으로 활성화됩니다. 따라서 일반적으로 추가 확장자를 지정할 필요가 없습니다.
이 옵션은 대상 아키텍처를 지정합니다. 어셈블러는 대상 아키텍처에서 실행되지 않는 명령을 어셈블하려고 시도하는 경우 오류 메시지를 발행합니다. 다음 아키텍처 이름이 인식됩니다. armv8-a, armv8.1-a, armv8.2-a, armv8.3 -a, armv8.4-a armv8.5-a, armv8.6-a, armv8. 7-a, armv8.8-a, armv8-r, armv9-a, armv9.1- a, armv9.2-a 및 armv9.3-a. -mcpu 및 -march가 모두 지정된 경우 어셈블러는 -mcpu에 대한 설정을 사용합니다. 둘 다 지정하지 않으면 어셈블러는 -mcpu=all로 기본 설정됩니다. 아키텍처 옵션은 -mcpu 옵션과 동일한 명령어 세트 확장 옵션으로 확장할 수 있습니다. -mcpu와 달리 확장 프로그램이 항상 기본적으로 활성화되는 것은 아닙니다.
이 옵션은 AArch64 가스에 대한 자세한 오류 메시지를 활성화합니다. 이 옵션은 기본적으로 활성화되어 있습니다.
이 옵션은 AArch64 가스에서 자세한 오류 메시지를 비활성화합니다.
Alpha 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
이 옵션은 대상 프로세서를 지정합니다. 대상 프로세서에서 실행되지 않는 명령을 어셈블하려는 경우 어셈블러는 명령을 매크로로 확장하거나 오류 메시지를 발행할 수 있습니다. 이 옵션은 .arch 지시문과 동일합니다. 다음 프로세서 이름이 인식됩니다: 21064, 21064a, 21066, 21068, 21164, 21164a, 21164pc, 21264, 21264a, 21264b, ev4, ev5, lca45, ev5, ev56, pca56 , ev6, ev67, ev68. 특수 이름 all을 사용하여 어셈블러가 모든 Alpha 프로세서에 유효한 명령을 수락할 수 있습니다. .arch와 관련된 OSF/1의 기존 관행과 MILO(Linux ARC 부트로더) 내의 기존 관행을 지원하기 위해 번호가 매겨진 프로세서 이름(예: 21064) 프로세서별 PALcode 명령을 활성화하는 반면 전기적 이름(예: ev4)은 활성화하지 않습니다.
stabs 지시문 및 절차 설명자에 대한 .mdebug 캡슐화 생성을 활성화하거나 비활성화합니다. 기본값은 첫 번째 stabs 지시문이 표시될 때 .mdebug를 자동으로 활성화하는 것입니다.
이 옵션은 공간을 절약하고 어셈블리 시간에 일부 재배치를 해결하는 대신 모든 재배치를 강제로 개체 파일에 넣습니다. 모든 기호 산술을 표현할 수 없기 때문에 이 옵션은 모든 기호 산술을 개체 파일로 전파하지 않습니다. 그러나 이 옵션은 특정 응용 프로그램에서 여전히 유용할 수 있습니다.
조립 및 링크 시간 모두에서 프로시저 호출의 최적화를 활성화하거나 비활성화합니다. 이러한 옵션은 VMS 대상에만 사용할 수 있으며 -replace가 기본값입니다. OpenVMS Linker Utility 설명서의 섹션 1.4.1을 참조하십시오.
이 옵션은 컴파일러가 디버그 정보를 생성할 때 사용됩니다. gcc가 mips-tfile을 사용하여 ECOFF에 대한 디버그 정보를 생성하는 경우 로컬 레이블을 개체 파일로 전달해야 합니다. 그렇지 않으면 이 옵션이 적용되지 않습니다.
크기보다 큰 로컬 공통 기호는 .bss에 배치되고 작은 기호는 .sbss에 배치됩니다.
이러한 옵션은 이전 버전과의 호환성을 위해 무시됩니다.
ARC 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
이 옵션은 코어 프로세서 변형을 선택합니다.
빅 엔디안(-EB) 또는 리틀 엔디안(-EL) 출력을 선택합니다.
코드 밀도 확장 지침을 활성화합니다.
ARM 프로세서 제품군에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
대상이 되는 ARM 프로세서 변형을 지정합니다.
대상에서 사용되는 ARM 아키텍처 변형을 지정합니다.
대상인 부동 소수점 아키텍처를 선택합니다.
사용 중인 부동 소수점 ABI를 선택합니다.
Thumb 전용 명령어 디코딩을 활성화합니다.
사용 중인 절차 호출 규칙을 선택합니다.
빅 엔디안(-EB) 또는 리틀 엔디안(-EL) 출력을 선택합니다.
코드가 Thumb과 ARM 코드 간의 인터워킹을 염두에 두고 생성되었음을 지정합니다.
CodeComposer Studio 어셈블리 구문 호환성 모드를 켭니다.
PIC 코드가 생성되었음을 지정합니다.
Blackfin 프로세서 제품군에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
이 옵션은 대상 프로세서를 지정합니다. 선택적 sirevision은 어셈블러에서 사용되지 않습니다. 여기에서 GCC는 -mcpu= 옵션을 쉽게 전달할 수 있습니다. 어셈블러는 대상 프로세서에서 실행되지 않는 명령을 어셈블하려고 시도하는 경우 오류 메시지를 발행합니다. 다음 프로세서 이름이 인식됩니다: bf504, bf506, bf512, bf514, bf516, bf518, bf522, bf523, bf524, bf525, bf526, bf527, bf531, bf532, bf533, bf534 , bf535 (아직 구현되지 않음), bf536, bf537, bf538, bf539 , bf542, bf542m, bf544, bf544m, bf547, bf547m , bf548, bf548m, bf549, bf549m, bf561, 및 bf592.
FDPIC ABI를 위해 조립합니다.
-mfdpic을 비활성화합니다.
Linux 커널 BPF 프로세서 제품군에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
@chapter BPF 종속 기능
이 옵션은 어셈블러가 big-endian eBPF를 내보내도록 지정합니다.
이 옵션은 어셈블러가 little-endian eBPF를 방출하도록 지정합니다.
명령줄에 엔디안 옵션이 지정되지 않은 경우 호스트 엔디안이 사용됩니다. CRIS 관련 옵션에 대한 문서는 정보 페이지를 참조하십시오.
C-SKY 프로세서 제품군에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
아키텍처 archname을 위해 어셈블합니다. --help 옵션은 archname에 유효한 값을 나열합니다.
아키텍처 cpuname을 위해 어셈블합니다. --help 옵션은 cpuname에 유효한 값을 나열합니다.
리틀 엔디안 출력을 생성합니다.
빅 엔디안 출력을 생성합니다.
위치 독립적인 코드를 생성합니다.
짧은 분기 명령어 jbf, jbt 및 jbr에서 jmpi로의 변환을 활성화/비활성화합니다. 이 옵션은 V2 프로세서 전용입니다. jmpi 명령을 지원하지 않는 CK801 및 CK802 대상에서는 무시되며 다른 프로세서에서는 기본적으로 활성화됩니다.
bsr 명령어에 대한 R_CKCORE_PCREL_IMM26BY2 재배치를 통해 링커에 전달합니다. 이 옵션은 기본적으로 활성화되어 있는 베어 메탈 C-SKY V2 ELF 대상에서만 사용할 수 있습니다. 공유 라이브러리에 대해 동적으로 링크되는 코드에서는 사용할 수 없습니다.
jbsr 명령어를 bsr로 변환하는 것을 활성화/비활성화합니다. 이 옵션은 CK801/CK802 대상에 대해 항상 활성화되어 있습니다(-mno-force2bsr은 무시됨). 또한 -mbranch-stub이 적용될 때 항상 활성화됩니다.
jsri 명령어를 bsr로 변환하는 것을 활성화/비활성화합니다. 이 옵션은 기본적으로 활성화되어 있습니다.
lrw 명령어를 movih/ori 쌍으로 변환하는 것을 활성화/비활성화합니다.
확장된 lrw 명령을 활성화/비활성화합니다. 이 옵션은 CK800 시리즈 프로세서에 대해 기본적으로 활성화되어 있습니다.
각 기능 후에 리터럴 풀 배치를 활성화/비활성화합니다.
무조건 분기 후 리터럴 풀 배치를 활성화/비활성화합니다. 이 옵션은 기본적으로 활성화되어 있습니다.
인터럽트 스택 명령을 활성화/비활성화합니다. 이 옵션은 CK801, CK802 및 CK802 프로세서에서 기본적으로 활성화됩니다.
다음 옵션은 특정 선택적 지침을 명시적으로 활성화합니다. 이러한 기능은 -mcpu=를 사용하여 이를 지원하는 프로세서를 지정함으로써 암시적으로 활성화됩니다.
하드 플로트 명령을 활성화합니다.
다중 프로세서 명령을 활성화합니다.
보조 프로세서 명령을 활성화합니다.
캐시 프리페치 명령을 활성화합니다.
C-SKY 보안 지침을 활성화합니다.
C-SKY 신뢰 지침을 활성화합니다.
DSP 명령을 활성화합니다.
향상된 DSP 명령을 활성화합니다.
벡터 DSP 명령을 활성화합니다.
Epiphany 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
32비트 및 16비트 명령어가 모두 허용되도록 지정합니다. 이것이 기본 동작입니다.
허용된 명령어를 16비트 세트로만 제한합니다.
H8/300 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다. @chapter H8/300 종속 기능
as의 Renesas H8/300 버전에는 하나의 시스템 종속 옵션이 있습니다.
0x00 스타일 외에 H'00 스타일 16진수 상수를 지원합니다.
H8300 시스템 변형을 설정합니다. 다음 기계 이름이 인식됩니다: h8300h, h8300hn, h8300s, h8300sn, h8300sx 및 h8300sxn.
i386 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
32비트 또는 64비트 중에서 워드 크기를 선택합니다. --32는 Intel i386 아키텍처를 의미하고 --x32 및 --64는 32비트 또는 64- 각각 비트 워드 크기. 이러한 옵션은 ELF 개체 파일 형식에서만 사용할 수 있으며 필요한 BFD 지원이 포함되어 있어야 합니다(32비트 플랫폼에서 --enable-64-bit-bfd를 추가하여 64비트 사용 활성화를 구성하고 x86-64를 대상 플랫폼으로 사용).
기본적으로 x86 GAS는 코드 섹션 내 정렬에 사용되는 여러 nop 명령어를 leal 0(%esi,1),%esi와 같은 멀티바이트 nop 명령어로 대체합니다. 이 스위치는 단일 바이트 nop(0x90)이 정렬을 위한 채우기 바이트로 명시적으로 지정된 경우 최적화를 비활성화합니다.
SVR4 파생 플랫폼에서 / 문자는 주석 문자로 취급되므로 표현식에서 사용할 수 없습니다. --divide 옵션은 /을 일반 문자로 바꿉니다. 주석을 시작하는 줄의 시작 부분에서 /을 비활성화하거나 주석을 시작하기 위해 #을 사용하는 데 영향을 미치지 않습니다.
이 옵션은 대상 프로세서를 지정합니다. 어셈블러는 대상 프로세서에서 실행되지 않는 명령을 어셈블하려고 시도하는 경우 오류 메시지를 발행합니다. 다음 프로세서 이름이 인식됩니다: i8086, i186, i286, i386, i486, i586, i686, 펜티엄, 펜티엄프로, 펜티엄ii, <코드> 펜티엄iii, 펜티엄4, prescott, nocona, core, core2 , corei7, iamcu, k6, k6_2, athlon, opteron , k8, amdfam10, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, znver4, btver1, btver2, generic32 및 generic64. 기본 명령어 세트 외에도 어셈블러는 다양한 확장 니모닉을 수락하도록 지시받을 수 있습니다. 예를 들어 -march=i686+sse4+vmx는 i686을 sse4 및 vmx로 확장합니다.
현재 지원되는 확장자는 8087, 287, 387, 687, cmov, fxsr, mmx, sse, sse2, sse3, sse4a, ssse3, sse4.1, sse4.2, sse4, avx , avx2, adx, rdseed, prfchw, smap, mpx, sha, rdpid, ptwrite, cet, gfni, vaes, vpclmulqdq, prefetchwt1, clflushopt, se1, clwb, movdiri, movdir64b, enqcmd, serialize, tsxldtrk, kl, widekl, hreset, avx512f, avx512cd, avx512er, avx512pf, avx512vl, avx512bw, avx512dq, avx512ifma, avx512vbmi, avx512_4fmaps, avx512_4vnniw, avx512_vpopcntdq, avx512_vbmi2, avx512_vnni, avx512_bitalg, avx512_vp2intersect, tdx, avx512_bf16, avx_vnni , avx512_fp16, prefetchi, avx_ifma, avx_vnni_int8, cmpccxadd, wrmsrns , msrlist, avx_ne_convert, rao_int, amx_int8, amx_bf16, amx_fp16, amx_tile, vmx, vmfunc, smx, xsave, xsaveopt, xsavec, xsaves, aes, pclmul, fsgsbase, rdrnd, f16c, bmi2, fma, movbe, ept, lzcnt, popcnt, hle, rtm, tsx, invpcid, clflush, mwaitx, clzero, wbnoinvd, pconfig, waitpkg, uintr, cldemote, rdpru, mcommit, sev_es, lwp, fma4, xop, cx16 , syscall, rdtscp, 3dnow, 3dnowa, sse4a, sse5 , snp, invlpgb, tlbsync, svme 및 자물쇠.
이러한 확장 니모닉에는 no 접두사가 붙을 수 있어 각각의(및 종속된) 기능을 취소할 수 있습니다. .arch 지시문이 -march와 함께 사용되면 .arch 지시문이 우선합니다.
이 옵션은 최적화할 프로세서를 지정합니다. -march 옵션과 함께 사용하면 -march 옵션으로 지정한 프로세서의 명령어만 생성된다. 유효한 CPU 값은 -march=CPU의 프로세서 목록과 동일합니다.
이 옵션은 어셈블러가 VEX 접두사를 사용하여 SSE 명령어를 인코딩해야 함을 지정합니다.
이 옵션은 어셈블러가 정렬된 벡터 이동을 정렬되지 않은 벡터 이동으로 인코딩하도록 지정합니다.
이 옵션은 어셈블러가 SSE 명령어를 확인해야 하는지 여부를 제어합니다. -msse-check=none은 어셈블러가 기본값인 SSE 명령어를 확인하지 않도록 합니다. -msse-check=경고는 어셈블러가 SSE 명령에 대한 경고를 발행하도록 합니다. -msse-check=오류는 어셈블러가 모든 SSE 명령어에 대해 오류를 발생시킵니다.
이 옵션은 어셈블러가 스칼라 AVX 명령을 인코딩하는 방법을 제어합니다. -mavxscalar=128은 기본값인 128비트 벡터 길이로 스칼라 AVX 명령을 인코딩합니다. -mavxscalar=256은 256비트 벡터 길이로 스칼라 AVX 명령을 인코딩합니다. 경고: 생산 코드에 이것을 사용하지 마십시오. CPU 오류로 인해 결과 코드가 특정 모델에서 작동하지 않을 수 있습니다.
이러한 옵션은 어셈블러가 VEX.W 무시(WIG) VEX 명령어를 인코딩하는 방법을 제어합니다. -mvexwig=0은 기본값인 vex.w=0으로 WIG VEX 명령어를 인코딩합니다. -mvexwig=1은 vex.w=1로 WIG EVEX 명령어를 인코딩합니다. 경고: 프로덕션 코드에 사용하지 마세요. CPU 오류로 인해 결과 코드가 인코딩되지 않을 수 있습니다. 특정 모델에서 작동합니다.
이 옵션은 어셈블러가 길이 무시(LIG) EVEX 명령어를 인코딩하는 방법을 제어합니다. -mevexlig=128은 기본값인 128비트 벡터 길이로 LIG EVEX 명령어를 인코딩합니다. -mevexlig=256 및 -mevexlig=512는 LIG EVEX 명령어를 각각 256비트 및 512비트 벡터 길이로 인코딩합니다. .
이 옵션은 어셈블러가 WIG(w-ignored) EVEX 명령어를 인코딩하는 방법을 제어합니다. -mevexwig=0은 기본값인 evex.w=0으로 WIG EVEX 명령어를 인코딩합니다. -mevexwig=1은 WIG EVEX 명령어를 evex.w=1로 인코딩합니다.
이 옵션은 일치하는 명령어에 대한 명령어 니모닉을 지정합니다. .att_mnemonic 및 .intel_mnemonic 지시문이 우선합니다.
이 옵션은 명령을 처리할 때 명령 구문을 지정합니다. .att_syntax 및 .intel_syntax 지시문이 우선합니다.
이 옵션은 레지스터에 % 접두사가 필요하지 않도록 지정합니다. .att_syntax 및 .intel_syntax 지시문이 우선합니다.
이 옵션은 어셈블러가 BND 접두어를 소스 코드에 명시적으로 지정하지 않은 경우에도 모든 분기에 추가하도록 합니다.
ELF 대상에서 어셈블러는 일반적으로 기본 가시성으로 정의된 비약한 전역 분기 대상에 대해 비 PLT 재배치를 최적화합니다. -mshared 옵션은 어셈블러에게 기본 가시성이 있는 모든 비약한 전역 분기 대상이 선점될 수 있는 공유 라이브러리로 들어갈 수 있는 코드를 생성하도록 지시합니다. 결과 코드는 약간 더 큽니다. 이 옵션은 분기 명령어 처리에만 영향을 미칩니다.
PE/COFF 대상에서 이 옵션은 32768개 이상의 섹션을 허용하는 큰 개체 파일 형식을 강제로 사용합니다.
이 옵션은 어셈블러가 잠금 접두사를 인코딩하는 방법을 제어합니다. 이 옵션은 잠금 접두사에서 실패하는 프로세서에 대한 해결 방법으로 사용됩니다. 이 옵션은 단일 코어, 단일 스레드 컴퓨터에서만 안전하게 사용할 수 있습니다. -momit-lock-prefix=yes는 모든 잠금 접두사를 생략합니다. -momit-lock-prefix=no는 기본값인 평소와 같이 잠금 접두사를 인코딩합니다.
이러한 옵션은 어셈블러가 lfence, mfence 및 sfence를 인코딩하는 방법을 제어합니다. -mfence-as-lock-add=yes는 lfence, mfence 및 sfence를 lock addl $0x0, (%rsp ) 64비트 모드에서 lock addl $0x0, (%esp) 32비트 모드에서. -mfence-as-lock-add=no는 기본값인 평소와 같이 lfence, mfence 및 sfence를 인코딩합니다.
이러한 옵션은 어셈블러가 32비트 모드에서 이완 재배치 R_386_GOT32X를 생성할지, 64비트 모드에서 R_X86_64_GOTPCRELX 및 R_X86_64_REX_GOTPCRELX를 생성할지 여부를 제어합니다. -mrelax-relocations=yes는 이완 재배치를 생성합니다. -mrelax-relocations=no는 이완 재배치를 생성하지 않습니다. 기본값은 --enable-x86-relax-relocations 구성 옵션으로 제어할 수 있습니다.
이 옵션은 어셈블러가 세그먼트 접두사 또는 NOP로 분기를 정렬하는 방법을 제어합니다. NUM은 2의 거듭제곱이어야 합니다. 0이거나 16 이상이어야 합니다. 분기는 NUM바이트 경계 내에서 정렬됩니다. 기본값인 -malign-branch-boundary=0은 분기를 정렬하지 않습니다.
이 옵션은 정렬할 분기 유형을 지정합니다. TYPE은 조건부 점프를 정렬하는 jcc, 융합된 조건부 점프를 정렬하는 fused, jmp의 조합입니다. 무조건 점프를 정렬, 호출을 정렬하는 call, rets를 정렬하는 ret, 간접 점프와 호출을 정렬하는 indirect. 기본값은 -malign-branch=jcc+fused+jmp입니다.
이 옵션은 분기를 정렬하기 위한 명령어의 최대 접두사 수를 지정합니다. NUM은 0에서 5 사이여야 합니다. 기본 NUM은 5입니다.
이 옵션은 명령에 최대 5개의 세그먼트 접두사가 있는 32바이트 경계 내에서 조건부 점프, 융합된 조건부 점프 및 무조건부 점프를 정렬합니다. -malign-branch-boundary=32 -malign-branch=jcc+fused+jmp -malign-branch-prefix-size=5<와 같습니다. /강한>. 기본값은 분기를 정렬하지 않습니다.
이 옵션은 어셈블러가 로드 명령 후에 lfence를 생성해야 하는지 여부를 제어합니다. -mlfence-after-load=yes는 lfence를 생성합니다. -mlfence-after-load=no는 기본값인 lfence를 생성하지 않습니다.
이러한 옵션은 어셈블러가 간접 분기 명령어 전에 lfence를 생성해야 하는지 여부를 제어합니다. -mlfence-before-indirect-branch=all은 레지스터를 통한 간접 근거리 분기 전에 lfence를 생성하고 메모리를 통한 간접 근거리 분기 전에 경고를 발행합니다. 또한 명시적인 -mlfence-before-ret=가 없을 때 암시적으로 -mlfence-before-ret=shl을 설정합니다. -mlfence-before-indirect-branch=register는 레지스터를 통해 간접 근처 분기 전에 lfence를 생성합니다. -mlfence-before-indirect-branch=memory는 메모리를 통한 간접적인 근거리 분기 전에 경고를 발행합니다. -mlfence-before-indirect-branch=none은 기본값인 lfence를 생성하거나 경고를 발행하지 않습니다. 분기 대상 레지스터를 로드한 후에 lfence가 생성되기 때문에 -mlfence-after-load=yes가 있는 레지스터를 통해 간접 근처 분기 전에 lfence가 생성되지 않습니다.
이 옵션은 어셈블러가 ret 전에 lfence를 생성해야 하는지 여부를 제어합니다. -mlfence-before-ret=또는은 lfence로 생성 또는 명령을 생성합니다. -mlfence-before-ret=shl/yes는 lfence로 shl 명령을 생성합니다. -mlfence-before-ret=not은 lfence로 not 명령을 생성합니다. -mlfence-before-ret=none은 기본값인 lfence를 생성하지 않습니다.
이러한 옵션은 어셈블러가 GNU_PROPERTY_X86_ISA_1_USED 및 GNU_PROPERTY_X86_FEATURE_2_USED GNU 속성 메모를 생성해야 하는지 여부를 제어합니다. 기본값은 --enable-x86-used-note 구성 옵션으로 제어할 수 있습니다.
이 옵션은 어셈블러가 SAE 전용 EVEX 명령어를 인코딩하는 방법을 제어합니다. -mevexrcig=rne은 EVEX 명령어의 RC 비트를 기본값인 00으로 인코딩합니다. -mevexrcig=rd, -mevexrcig=ru 및 -mevexrcig=rz는 각각 01, 10 및 11 RC 비트로 SAE 전용 EVEX 명령어를 인코딩합니다.
이 옵션은 어셈블러가 64비트 모드에서 AMD64 또는 Intel64 ISA만 허용하도록 지정합니다. 기본값은 공통, Intel64 전용 및 AMD64 ISA를 허용하는 것입니다.
더 작은 명령어 크기로 명령어 인코딩을 최적화합니다. -O 및 -O1은 64비트 레지스터 로드 명령어를 64비트 즉시로 인코딩합니다. 31비트 또는 32비트 즉치로 32비트 레지스터 로드 명령어를 인코딩하고 64를 인코딩합니다. -32비트 레지스터 지우기 명령어가 있는 비트 레지스터 지우기 명령어, 128비트 VEX 벡터 레지스터 지우기 명령어가 있는 256비트/512비트 VEX/EVEX 벡터 레지스터 지우기 명령어 인코딩, 128비트/256비트 EVEX 벡터 레지스터 로드 인코딩 VEX 벡터 레지스터 로드/저장 명령어가 있는 /store 명령어, 128비트/256비트 EVEX 묶음 정수 논리 명령어를 128비트/256비트 VEX 묶음 정수 논리로 인코딩합니다. -O2는 -O1 최적화를 포함하고 256비트/512비트 EVEX 벡터 레지스터 지우기 명령을 128비트 EVEX 벡터 레지스터 지우기 명령으로 인코딩합니다. 64비트 모드에서 교환 소스 피연산자가 있는 VEX 인코딩 명령어는 3바이트 형식 대신 2바이트 VEX 접두사 형식을 사용할 수 있는 경우 해당 소스 피연산자를 교체합니다. 동일한 (레지스터) 피연산자가 두 번 지정된 AND 및 OR의 특정 형식도 TEST로 변경됩니다. -Os는 -O2 최적화를 포함하고 16비트, 32비트 및 64비트 레지스터 테스트(즉시 포함)를 8비트 레지스터 테스트(즉시 포함)로 인코딩합니다. -O0은 이 최적화를 끕니다.
Ubicom IP2K 시리즈에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
확장 IP2022 명령어가 허용되도록 지정합니다.
허용된 명령을 기본 IP2022 명령으로만 제한하는 기본 동작을 복원합니다.
Renesas M32C 및 M16C 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
M32C 지침을 조립합니다.
M16C 명령어를 어셈블합니다(기본값).
링크 타임 완화에 대한 지원을 활성화합니다.
0x00 스타일 외에 H'00 스타일 16진수 상수를 지원합니다.
Renesas M32R(이전의 Mitsubishi M32R) 시리즈에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
M32R 제품군에서 대상 프로세서를 지정합니다. 기본값은 일반적으로 M32R이지만 이 옵션은 M32RX로 변경합니다.
의심스러운 병렬 구성이 발견되면 경고 메시지를 생성합니다.
의심스러운 병렬 구성이 발견될 때 경고 메시지를 생성하지 마십시오.
다음 옵션은 Motorola 68000 시리즈에 대해 구성된 경우 사용할 수 있습니다.
정의되지 않은 기호에 대한 참조를 두 단어가 아닌 한 단어로 줄입니다.
68000 제품군에서 대상 프로세서를 지정하십시오. 기본값은 일반적으로 68020이지만 구성 시 변경할 수 있습니다.
대상 머신에는 부동 소수점 보조 프로세서가 있습니다(또는 없습니다). 기본값은 68020, 68030 및 cpu32용 보조 프로세서를 가정하는 것입니다. 기본 68000은 68881과 호환되지 않지만 보조 프로세서 명령을 주 프로세서와 에뮬레이션할 수 있으므로 두 가지 조합을 지정할 수 있습니다.
대상 시스템에는 메모리 관리 장치 보조 프로세서가 있습니다(또는 없습니다). 기본값은 68020 이상에 대해 MMU를 가정하는 것입니다.
Altera Nios II 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
가능한 경우 식별된 범위를 벗어난 분기를 PC 관련 jmp 시퀀스로 교체합니다. 생성된 코드 시퀀스는 위치 독립적 코드에 사용하기에 적합하지만 시퀀스의 길이 때문에 확장된 분기 범위에 실질적인 제한이 있습니다. 이 옵션은 기본값입니다.
범위 내에 있는지 확인할 수 없는 분기 명령어와 모든 호출 명령어를 각각 jmp 및 callr 시퀀스로 교체합니다. 이 옵션은 대상 기호에 대한 절대 재배치를 생성하며 위치 독립적 코드에는 적합하지 않습니다.
분기나 호출을 바꾸지 마십시오.
빅 엔디안 출력을 생성합니다.
리틀 엔디안 출력을 생성합니다. 이것이 기본값입니다.
이 옵션은 대상 아키텍처를 지정합니다. 어셈블러는 대상 아키텍처에서 실행되지 않는 명령을 어셈블하려고 시도하는 경우 오류 메시지를 발행합니다. 다음 아키텍처 이름이 인식됩니다: r1, r2. 기본값은 r1입니다.
PRU 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
LD가 expression의 상위 16비트를 확인하여 LDI32 명령어를 최적화한다고 가정합니다. 모두 0이면 LD는 LDI32 명령을 단일 LDI로 단축합니다. 이러한 경우 as는 diff 식에 대한 DIFF 재배치를 출력합니다.
LD가 LDI32 명령어를 최적화하지 않는다고 가정합니다. 결과적으로 DIFF 재배치는 내보내지지 않습니다.
레이블 이름이 레지스터 이름과 일치하는 경우 경고하지 마십시오. 일반적으로 어셈블러 프로그래머는 이 경고가 나타나기를 원할 것입니다. C 컴파일러는 이것을 끄고 싶을 수 있습니다.
다음 옵션은 MIPS 프로세서에 대해 구성된 경우 사용할 수 있습니다.
이 옵션은 gp 레지스터로 암시적으로 참조할 수 있는 개체의 최대 크기를 설정합니다. Ultrix를 실행하는 DECstation과 같이 ECOFF 형식을 사용하는 대상에 대해서만 허용됩니다. 기본값은 8입니다.
빅 엔디안 형식 출력을 생성합니다.
리틀 엔디안 형식 출력을 생성합니다.
특정 MIPS 명령 집합 아키텍처 수준에 대한 코드를 생성합니다. -mips1은 -march=r3000의 별칭이고, -mips2는 -march=r6000의 별칭입니다. -mips3은 -march=r4000의 별칭이고 -mips4는 -march=r8000의 별칭입니다. -mips5, -mips32, -mips32r2, -mips32r3, -mips32r5, -mips32r6, -mips64, -mips64r2, -mips64r3, -mips64r5, 및 -mips64r6은 일반 MIPS V, MIPS32, MIPS32 릴리스 2, MIPS32 릴리스 3, MIPS32 릴리스 5, MIPS32 릴리스 6, MIPS64, MIPS64 릴리스 2, MIPS64 릴리스 3, MIPS64 릴리스 5 및 MIPS64에 해당합니다. 각각 6개의 ISA 프로세서를 릴리스합니다.
특정 MIPS CPU에 대한 코드를 생성합니다.
특정 MIPS CPU를 예약하고 조정합니다.
mfhi 또는 mflo 명령어의 대상 레지스터 읽기가 다음 두 명령어에서 발생하는 경우 nops가 삽입되도록 합니다.
dmult 또는 dmultu 명령어 다음에 로드 명령어가 오면 nops가 삽입되도록 합니다.
6개 이하의 명령으로 구성된 짧은 루프의 끝에 배치된 분기 명령의 지연 슬롯에 이전 명령을 예약하지 말고 항상 nop 명령을 대신 예약하십시오. R5900 칩의 하드웨어 버그로 인해 특정 조건에서 짧은 루프 버그로 인해 루프가 한두 번만 실행됩니다.
stabs 스타일 디버깅 출력이 표준 ELF .stabs 섹션 대신 ECOFF 스타일 .mdebug 섹션으로 이동하도록 합니다.
.pdr 섹션의 생성을 제어합니다.
레지스터 크기는 일반적으로 ISA 및 ABI에서 유추되지만 이러한 플래그는 특정 레지스터 그룹이 항상 32비트 폭으로 처리되도록 합니다. -mgp32는 범용 레지스터의 크기를 제어하고 -mfp32는 부동 소수점 레지스터의 크기를 제어합니다.
레지스터 크기는 일반적으로 ISA 및 ABI에서 유추되지만 이러한 플래그는 특정 레지스터 그룹이 항상 64비트 폭으로 처리되도록 합니다. -mgp64는 범용 레지스터의 크기를 제어하고 -mfp64는 부동 소수점 레지스터의 크기를 제어합니다.
레지스터 크기는 일반적으로 ISA 및 ABI에서 유추되지만 -mabi=32와 함께 이 플래그를 사용하면 폭이 32 또는 64비트인 부동 소수점 레지스터로 올바르게 작동하는 ABI 변형이 가능합니다. .
ISA에서 지원하는 경우 홀수 단정밀도 레지스터에서 부동 소수점 연산을 사용하도록 설정합니다. -mfpxx는 -mno-odd-spreg를 의미하며 그렇지 않은 경우 기본값은 -modd-spreg입니다.
MIPS 16 프로세서용 코드를 생성합니다. 이는 어셈블리 파일의 시작 부분에 .module mips16을 넣는 것과 같습니다. -no-mips16은 이 옵션을 끕니다.
MIPS16 모드에서 MIPS16e2 명령어 사용을 활성화합니다. 이것은 어셈블리 파일의 시작 부분에 .module mips16e2를 넣는 것과 같습니다. -mno-mips16e2는 이 옵션을 끕니다.
microMIPS 프로세서용 코드를 생성합니다. 이는 어셈블리 파일의 시작 부분에 .module micromips를 넣는 것과 같습니다. -mno-micromips는 이 옵션을 끕니다. 이는 어셈블리 파일의 시작 부분에 .module nomicromips를 넣는 것과 같습니다.
MIPS32 명령어 세트에 대한 SmartMIPS 확장을 활성화합니다. 이것은 어셈블리 파일의 시작 부분에 .module smartmips를 넣는 것과 같습니다. -mno-smartmips는 이 옵션을 끕니다.
MIPS-3D 애플리케이션 특정 확장에 대한 코드를 생성합니다. 이것은 어셈블러에게 MIPS-3D 명령을 수락하도록 지시합니다. -no-mips3d는 이 옵션을 끕니다.
MDMX 응용 프로그램별 확장에 대한 코드를 생성합니다. 이것은 어셈블러에게 MDMX 명령을 수락하도록 지시합니다. -no-mdmx는 이 옵션을 끕니다.
DSP 릴리스 1 애플리케이션 특정 확장에 대한 코드를 생성합니다. 이는 어셈블러에게 DSP 릴리스 1 지침을 수락하도록 지시합니다. -mno-dsp는 이 옵션을 끕니다.
DSP 릴리스 2 애플리케이션 특정 확장에 대한 코드를 생성합니다. 이 옵션은 -mdsp를 의미합니다. 이는 어셈블러에게 DSP 릴리스 2 명령을 수락하도록 지시합니다. -mno-dspr2는 이 옵션을 끕니다.
DSP 릴리스 3 애플리케이션 특정 확장에 대한 코드를 생성합니다. 이 옵션은 -mdsp 및 -mdspr2를 의미합니다. 이는 어셈블러에게 DSP 릴리스 3 지침을 수락하도록 지시합니다. -mno-dspr3은 이 옵션을 끕니다.
MIPS SIMD 아키텍처 확장용 코드를 생성합니다. 이것은 어셈블러에게 MSA 명령을 수락하도록 지시합니다. -mno-msa는 이 옵션을 끕니다.
MIPS eXtended Physical Address(XPA) 확장에 대한 코드를 생성합니다. 이것은 어셈블러가 XPA 명령을 수락하도록 지시합니다. -mno-xpa는 이 옵션을 끕니다.
MT 응용 프로그램 특정 확장에 대한 코드를 생성합니다. 이것은 어셈블러에게 MT 명령어를 수락하도록 지시합니다. -mno-mt는 이 옵션을 끕니다.
MCU 응용 프로그램별 확장에 대한 코드를 생성합니다. 이는 어셈블러가 MCU 명령을 수락하도록 지시합니다. -mno-mcu는 이 옵션을 끕니다.
MIPS CRC(Cyclic Redundancy Check) 응용 프로그램 특정 확장에 대한 코드를 생성합니다. 이는 어셈블러에게 CRC 명령을 수락하도록 지시합니다. -mno-crc는 이 옵션을 끕니다.
GINV(Global INValidate) 애플리케이션 특정 확장에 대한 코드를 생성합니다. 이것은 어셈블러에게 GINV 명령어를 수락하도록 지시합니다. -mno-ginv는 이 옵션을 끕니다.
Loongson MMI(MultiMedia extensions Instructions) 응용 프로그램 특정 확장에 대한 코드를 생성합니다. 이는 어셈블러에게 MMI 명령어를 수락하도록 지시합니다. -mno-loongson-mmi는 이 옵션을 끕니다.
Loongson CAM(Content Address Memory) 명령에 대한 코드를 생성합니다. 이것은 어셈블러에게 Loongson CAM 명령을 수락하도록 지시합니다. -mno-loongson-cam은 이 옵션을 끕니다.
Loongson EXTensions(EXT) 명령에 대한 코드를 생성합니다. 이것은 어셈블러에게 Loongson EXT 명령을 수락하도록 지시합니다. -mno-loongson-ext는 이 옵션을 끕니다.
Loongson EXTensions R2(EXT2) 명령에 대한 코드를 생성합니다. 이 옵션은 -mloongson-ext를 의미합니다. 이것은 어셈블러에게 Loongson EXT2 명령을 수락하도록 지시합니다. -mno-loongson-ext2는 이 옵션을 끕니다.
microMIPS 프로세서용 코드를 생성할 때는 32비트 명령 인코딩만 사용하십시오. 이 옵션은 16비트 명령의 사용을 금지합니다. 이는 어셈블리 파일의 시작 부분에 .set insn32를 넣는 것과 같습니다. -mno-insn32는 이 옵션을 끕니다. 이것은 어셈블리 파일의 시작 부분에 .set noinsn32를 넣는 것과 같습니다. 기본적으로 -mno-insn32가 선택되어 모든 지침을 사용할 수 있습니다.
--no-construct-floats 옵션은 이중 너비 레지스터를 구성하는 두 개의 단일 너비 부동 소수점 레지스터에 값의 두 절반을 로드하여 이중 너비 부동 소수점 상수의 생성을 비활성화합니다. 기본적으로 --construct-floats가 선택되어 이러한 부동 소수점 상수를 구성할 수 있습니다.
--relax-branch 옵션을 사용하면 범위를 벗어난 분기를 완화할 수 있습니다. 기본적으로 --no-relax-branch가 선택되어 범위를 벗어난 분기가 오류를 생성하도록 합니다.
ISA 모드 간의 유효하지 않은 전환에 대한 분기 검사를 무시합니다. 분기의 의미 체계는 ISA 모드 스위치를 제공하지 않으므로 대부분의 경우 분기가 인코딩된 ISA 모드는 분기 대상 레이블의 ISA 모드와 동일해야 합니다. 따라서 GAS는 분기 어셈블리에서 두 ISA 모드가 일치하는지 확인하는 검사를 구현했습니다. -mignore-branch-isa는 이러한 검사를 비활성화합니다. 기본적으로 -mno-ignore-branch-isa가 선택되어 ISA 모드 간 전환이 필요한 잘못된 분기로 인해 오류가 발생합니다.
IEEE 754-2008(-mnan=2008) 또는 레거시(-mnan=legacy) NaN 인코딩 형식 중에서 선택합니다. 후자가 기본값입니다.
이 옵션은 이전에 둘 다 지원하는 IRIX 5와 같은 대상에서 ELF와 ECOFF 출력 사이를 전환하는 데 사용되었습니다. MIPS ECOFF 지원은 GAS 2.24에서 제거되었으므로 이제 옵션이 거의 사용되지 않습니다. 이전 버전과의 호환성을 위해 유지됩니다. 사용 가능한 구성 이름은 mipself, mipslelf 및 mipsbelf입니다. 출력이 항상 ELF이므로 이제 mipself를 선택해도 아무런 효과가 없습니다. mipslelf 및 mipsbelf는 각각 리틀 엔디안 및 빅 엔디안 출력을 선택하지만 이제 -EL 및 -EB가 대신 선호하는 옵션.
as는 이 옵션을 무시합니다. 기본 도구와의 호환성을 위해 허용됩니다.
곱셈 오버플로 및 0으로 나누기를 처리하는 방법을 제어합니다. --trap 또는 --no-break(동의어임)는 트랩 예외를 처리합니다(명령 세트 아키텍처 레벨 2 이상에서만 작동). --break 또는 --no-trap(동의어이기도 하며 기본값임) 중단 예외가 발생합니다.
이 옵션을 사용하면 as는 매크로에서 nop 명령을 생성할 때마다 경고를 발행합니다.
LoongArch 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
위치 독립적 코드 생성
위치 독립적 코드 생성 안 함(기본값)
메타 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
메타 1.1용 코드를 생성합니다.
Meta 1.2용 코드를 생성합니다.
Meta 2.1용 코드를 생성합니다.
코드가 Meta 2.1의 FPU 하드웨어를 사용하도록 허용합니다.
MMIX 관련 옵션에 대한 설명서는 정보 페이지를 참조하십시오.
NDS32 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
성능을 위해 최적화하십시오.
공간에 최적화하십시오.
리틀 엔디안 데이터 출력을 생성합니다.
리틀 엔디안 데이터 출력을 생성합니다.
PIC를 생성합니다.
이 파일에 대해 fp-as-gp 완화를 억제합니다.
백투백 분기 최적화.
이 파일에 대한 모든 이완을 억제하십시오.
v3, v3j, v3m, v3f, v3s, v2, v2j, v2f, v2s일 수 있는 아키텍처 <아키텍처 이름>을 위해 어셈블합니다.
v2, v3, v3m이 될 수 있는 기준선
FPU 구성을 지정합니다.
abi 버전 지정
곱하기 명령 지원을 활성화/비활성화합니다.
나누기 명령 지원을 활성화/비활성화합니다.
16비트 확장 활성화/비활성화
d0/d1 레지스터 활성화/비활성화
성능 확장 활성화/비활성화
성능 확장 2 활성화/비활성화
문자열 확장 활성화/비활성화
감소된 레지스터 구성(GPR16) 옵션 활성화/비활성화
AUDIO ISA 확장 활성화/비활성화
FPU SP 확장 활성화/비활성화
FPU DP 확장 활성화/비활성화
FPU fused-multiply-add 명령어 활성화/비활성화
모든 확장 및 지침 지원 켜기
PowerPC 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
ELF32 또는 XCOFF32를 생성합니다.
ELF64 또는 XCOFF64를 생성합니다.
ELF 플래그에 EF_PPC_RELOCATABLE_LIB를 설정합니다.
POWER/2(RIOS2)용 코드를 생성합니다.
POWER용 코드 생성(RIOS1)
PowerPC 601용 코드를 생성합니다.
PowerPC 603/604용 코드를 생성합니다.
PowerPC 403/405용 코드를 생성합니다.
PowerPC 440용 코드 생성. BookE 및 일부 405 명령어.
PowerPC 464용 코드를 생성합니다.
PowerPC 476용 코드를 생성합니다.
PowerPC 7400/7410/7450/7455용 코드를 생성합니다.
PowerPC 750CL/Gekko/Broadway용 코드를 생성합니다.
PowerPC 821/850/860용 코드를 생성합니다.
PowerPC 620/625/630용 코드를 생성합니다.
e200 변형, LSP가 있는 e200z2, SPE가 있는 e200z4에 대한 코드를 생성합니다.
PowerPC e300 제품군용 코드를 생성합니다.
Motorola e500 코어 컴플렉스에 대한 코드를 생성합니다.
Freescale e500mc 코어 컴플렉스에 대한 코드를 생성합니다.
Freescale e500mc64 코어 컴플렉스에 대한 코드를 생성합니다.
Freescale e5500 코어 컴플렉스에 대한 코드를 생성합니다.
Freescale e6500 코어 컴플렉스에 대한 코드를 생성합니다.
LSP 명령을 활성화합니다. (SPE 및 SPE2를 비활성화합니다.)
Motorola SPE 명령어용 코드를 생성합니다. (LSP를 비활성화합니다.)
Freescale SPE2 명령어용 코드를 생성합니다. (LSP를 비활성화합니다.)
AppliedMicro Titan 코어 컴플렉스에 대한 코드를 생성합니다.
브리지 기능을 포함하여 PowerPC 64용 코드를 생성합니다.
32비트 BookE용 코드를 생성합니다.
A2 아키텍처용 코드를 생성합니다.
AltiVec 명령어로 프로세서용 코드를 생성합니다.
Freescale PowerPC VLE 명령어용 코드를 생성합니다.
VSX(Vector-Scalar) 명령으로 프로세서용 코드를 생성합니다.
하드웨어 트랜잭션 메모리 명령어로 프로세서용 코드를 생성합니다.
Power4 아키텍처용 코드를 생성합니다.
Power5 아키텍처용 코드를 생성합니다.
Power6 아키텍처용 코드를 생성합니다.
Power7 아키텍처용 코드를 생성합니다.
Power8 아키텍처용 코드를 생성합니다.
Power9 아키텍처용 코드를 생성합니다.
Power10 아키텍처용 코드를 생성합니다.
'미래' 아키텍처를 위한 코드를 생성합니다.
Cell Broadband Engine 아키텍처용 코드를 생성합니다.
코드 Power/PowerPC 일반 지침을 생성합니다.
모든 아키텍처(PWR/PWRX/PPC)에 대한 코드를 생성합니다.
레지스터에 기호 이름을 허용합니다.
레지스터에 기호 이름을 허용하지 마십시오.
GCC의 -mrelocatable 옵션 지원.
GCC의 -mrelocatable-lib 옵션 지원.
ELF 플래그에 PPC_EMB 비트를 설정합니다.
리틀 엔디안 머신용 코드를 생성합니다.
빅 엔디안 머신용 코드를 생성합니다.
Solaris용 코드를 생성합니다.
Solaris용 코드를 생성하지 마십시오.
정렬 지시문이 count개 이상의 nops를 삽입하는 경우 nops 실행을 건너뛰기 위해 시작 부분에 분기를 배치합니다.
RISC-V 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
위치 독립적 코드 생성
위치 독립적 코드를 생성하지 않음(기본값)
ISA에서 지정한 기본 isa를 선택합니다. 예: -march=rv32ima. 이 옵션과 아키텍처 속성이 설정되지 않은 경우 어셈블러는 기본 구성 설정 --with-arch=ISA를 확인합니다.
기본 isa 사양 버전을 선택합니다. ISA 버전이 -march로 설정되지 않은 경우 어셈블러는 기본적으로 선택된 사양에 따라 버전을 설정하는 데 도움을 줍니다. 이 옵션이 설정되지 않은 경우 어셈블러는 기본 구성 설정 --with-isa-spec=ISAspec을 확인합니다.
권한 있는 사양 버전을 선택합니다. 선택한 사양에 따라 CSR이 유효한지 여부를 결정할 수 있습니다. 이 옵션과 권한 속성이 설정되지 않은 경우 어셈블러는 기본 구성 설정 --with-priv-spec=PRIVspec을 확인합니다.
ilp32 또는 lp64인 ABI를 선택하고 선택적으로 f, d 또는 q를 선택하여 단정밀도, 배정밀도 또는 4배 정밀도 부동 소수점 호출 규칙을 나타내거나 none을 선택하여 soft-float 호출 규칙을 나타냅니다. . 또한 ilp32 뒤에 선택적으로 e가 올 수 있어 항상 소프트 플로트인 RVE ABI를 나타냅니다.
심볼 주소를 구체화하는 데 필요한 명령 수를 줄이려면 링커 이완을 활용하십시오. (기본)
링커 완화를 수행하지 마십시오.
.attribute 지시어가 설정되지 않은 경우 riscv elf 속성 섹션의 기본 콘텐츠를 생성합니다. 이 섹션은 링커 또는 런타임 로더가 호환성을 확인하는 데 필요한 정보를 기록하는 데 사용됩니다. 이 정보에는 ISA 문자열, 스택 정렬 요구 사항, 정렬되지 않은 메모리 액세스, 특권 사양의 주 버전, 부 버전 및 개정 버전이 포함됩니다.
.attribute 지시문이 설정되지 않은 경우 기본 riscv elf 속성 섹션을 생성하지 마십시오.
ISA 종속 CRS 및 읽기 전용 CSR에 대한 CSR 검사를 활성화합니다. ISA 종속 CSR은 특정 ISA가 설정된 경우에만 유효합니다. 읽기 전용 CSR은 CSR 명령으로 쓸 수 없습니다.
CSR 검사를 수행하지 마십시오.
리틀 엔디안 머신용 코드를 생성합니다.
빅 엔디안 머신용 코드를 생성합니다.
RX 특정 옵션에 대한 문서는 정보 페이지를 참조하십시오.
s390 프로세서 제품군에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
31/32비트 또는 64비트 중에서 워드 크기를 선택합니다.
엔터프라이즈 시스템 아키텍처(esa) 또는 z/아키텍처 모드(zarch) 중에서 아키텍처 모드를 선택합니다.
어떤 s390 프로세서 변형이 대상인지 지정하십시오. g5(또는 arch3), g6, z900(또는 >arch5), z990(또는 arch6), z9-109, z9-ec( 또는 arch7), z10(또는 arch8), z196(또는 arch9) , zEC12(또는 arch10), z13(또는 arch11), z14( 또는 arch12), z15(또는 arch13) 또는 z16(또는 arch14) ).
레지스터에 대한 기호 이름을 허용하거나 허용하지 않습니다.
기본 또는 인덱스 레지스터에 대한 피연산자가 지정되었지만 0으로 평가될 때마다 경고합니다.
TMS320C6000 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
아키텍처 arch의 지침만 활성화합니다. 기본적으로 모든 지침이 허용됩니다. 다음 arch 값이 허용됩니다: c62x, c64x, c64x+, c67x , c67x+, c674x.
-mdsbt 옵션은 어셈블러가 값이 1인 Tag_ABI_DSBT 속성을 생성하여 코드가 DSBT 주소 지정을 사용하고 있음을 나타냅니다. 기본값인 -mno-dsbt 옵션을 사용하면 태그 값이 0이 되어 코드가 DSBT 주소 지정을 사용하지 않음을 나타냅니다. 링커는 다른 유형(DSBT 및 비 DSBT)의 개체가 함께 연결된 경우 경고를 내보냅니다.
-mpid= 옵션은 어셈블러가 코드에서 사용하는 데이터 주소 지정 형식을 나타내는 값으로 Tag_ABI_PID 속성을 생성하도록 합니다. 기본값인 -mpid=no는 위치 종속 데이터 주소 지정을 나타내고 -mpid=near는 가까운 DP 주소 지정을 사용하는 GOT 액세스로 위치 독립적 주소 지정을 나타내고 -mpid=far는 원거리 DP 주소 지정을 사용하는 GOT 액세스로 위치 독립적 주소 지정을 나타냅니다. 링커는 이 옵션의 다른 설정으로 빌드된 객체가 함께 링크되는 경우 경고를 내보냅니다.
-mpic 옵션을 사용하면 어셈블러가 값이 1인 Tag_ABI_PIC 속성을 생성하여 코드가 위치 독립적 코드 주소 지정을 사용하고 있음을 나타냅니다. -mno 기본값인 -pic 옵션은 태그의 값이 0이 되도록 하여 위치 종속 코드 주소 지정을 나타냅니다. 링커는 서로 다른 유형(위치 종속 및 위치 독립적)의 개체가 함께 연결된 경우 경고를 내보냅니다.
지정된 endianness에 대한 코드를 생성합니다. 기본값은 리틀 엔디안입니다.
TILE-Gx 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
32비트 또는 64비트 중에서 워드 크기를 선택합니다.
빅 엔디안(-EB) 또는 리틀 엔디안(-EL) 중에서 엔디안을 선택합니다.
Visium 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
이 옵션은 대상 아키텍처를 지정합니다. 대상 아키텍처에서 실행되지 않는 명령을 어셈블하려고 하면 어셈블러에서 오류 메시지를 표시합니다. 다음 이름이 인식됩니다. mcm24 mcm gr5 gr6
Xtensa 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
리터럴 풀의 처리를 제어합니다. 기본값은 --no-text-section-literals이며 출력 파일의 별도 섹션에 리터럴을 배치합니다. 이를 통해 리터럴 풀을 데이터 RAM/ROM에 배치할 수 있습니다. --text-section-literals를 사용하면 리터럴이 가능한 한 참조에 가깝게 유지하기 위해 텍스트 섹션에 리터럴이 배치됩니다. 이는 리터럴이 텍스트 섹션의 L32R 명령 범위를 벗어나는 큰 어셈블리 파일에 필요할 수 있습니다. 리터럴은 .literal_position 지시문 또는 이전 ENTRY 지침을 따르는 풀로 그룹화됩니다. 이 옵션은 PC 관련 L32R 명령어를 통해 참조되는 리터럴에만 영향을 미칩니다. 절대 모드 L32R 명령어의 리터럴은 별도로 처리됩니다.
리터럴 풀의 처리를 제어합니다. 기본값은 --no-auto-litpools이며, --text-section-literals가 없으면 출력 파일의 별도 섹션에 리터럴을 배치합니다. 이를 통해 리터럴 풀을 데이터 RAM/ROM에 배치할 수 있습니다. --auto-litpools를 사용하면 리터럴이 참조에 최대한 가깝게 유지하기 위해 텍스트 섹션에 리터럴이 산재되어 있으므로 명시적인 .literal_position 지시문이 필요하지 않습니다. 이는 함수 시작 부분의 단일 리터럴 풀이 끝에 있는 L32R 명령으로 도달할 수 없는 매우 큰 함수에 필요할 수 있습니다. 이 옵션은 PC 관련 L32R 명령어를 통해 참조되는 리터럴에만 영향을 미칩니다. 절대 모드 L32R 명령어의 리터럴은 별도로 처리됩니다. --text-section-literals와 함께 사용하면 --auto-litpools가 우선합니다.
L32R 명령어가 절대 또는 PC 기준 주소 지정을 사용하는지 여부를 어셈블러에 표시합니다. 프로세서에 절대 주소 지정 옵션이 포함된 경우 기본값은 절대 L32R 재배치를 사용하는 것입니다. 그렇지 않으면 PC 기준 L32R 재배치만 사용할 수 있습니다.
자동 정렬을 활성화하거나 비활성화하여 코드 크기의 일부 비용으로 분기 패널티를 줄입니다. 이 최적화는 기본적으로 활성화되어 있습니다. 어셈블러는 고정 정렬 요구 사항이 있는 LOOP와 같은 명령을 항상 정렬합니다.
더 넓은 범위의 주소에서 호출을 허용하기 위해 호출 지침의 변환을 활성화 또는 비활성화합니다. 통화 대상이 잠재적으로 범위를 벗어날 수 있는 경우 이 옵션을 사용해야 합니다. 코드 크기와 성능이 모두 저하될 수 있지만 링커는 일반적으로 호출이 범위 내에서 끝날 때 불필요한 오버헤드를 최적화할 수 있습니다. 기본값은 --no-longcalls입니다.
완화 및 최적화를 포함하여 Xtensa 명령어의 모든 어셈블러 변환을 활성화하거나 비활성화합니다. 기본값은 --변환입니다. --no-transform은 지침이 어셈블리 소스에 지정된 것과 정확히 일치해야 하는 드문 경우에만 사용해야 합니다. --no-transform을 사용하면 범위를 벗어난 명령 피연산자가 오류가 됩니다.
oldname 섹션의 이름을 newname으로 바꿉니다. 이 옵션을 여러 번 사용하여 여러 섹션의 이름을 바꿀 수 있습니다.
더 넓은 범위의 주소에서 점프할 수 있도록 점프 명령의 변환을 활성화 또는 비활성화합니다. 이 옵션은 점프 대상이 잠재적으로 범위를 벗어날 수 있을 때 사용해야 합니다. 이러한 점프가 없는 경우 이 옵션은 코드 크기나 성능에 영향을 미치지 않습니다. 기본값은 --트램폴린입니다.
.xtensa.info 섹션에 기록된 ABI 태그를 선택합니다. ABI 태그는 어셈블리 코드의 ABI를 나타냅니다. 일관되지 않은 ABI 태그가 있는 개체 파일을 연결하려고 시도하면 링커에서 경고가 발생합니다. 기본 ABI는 Xtensa 코어 구성에 의해 선택됩니다.
Z80 프로세서에 대해 구성된 경우 다음 옵션을 사용할 수 있습니다.
@chapter Z80 종속 기능
이 옵션은 대상 프로세서를 지정합니다. 어셈블러는 대상 프로세서에서 실행되지 않는 명령을 어셈블하려고 시도하는 경우 오류 메시지를 발행합니다. 인식되는 프로세서 이름은 z80, z180, ez80, gbz80, z80n, <코드>r800. 기본 명령어 세트 외에도 어셈블러는 일부 확장 니모닉을 수락하도록 지시받을 수 있습니다. 예를 들어, -march=z180+sli+infc는 SLI 명령어 및 IN F,(C)z180을 확장합니다. >. 다음 확장이 현재 지원됩니다: full(알려진 모든 명령), adl(기본적으로 ADL CPU 모드, eZ80만 해당), sli(명령 SLI, SLL 또는 SL1으로 알려짐), xyhl(인덱스 레지스터의 절반이 있는 명령어: IXL , IXH, IYL, IYH), xdcb(RotOp(II +d),R 및 BitOp n,(II+d),R), infc (명령 IN F,(C) 또는 IN (C)), outc0 (명령어 OUT (C),0). 기본 명령어 세트를 확장하는 대신 -로 시작하는 확장 니모닉은 해당 기능을 취소합니다. -march=z80-full+xyhl은 먼저 모든 기본 확장을 제거하고 추가합니다. 인덱스 레지스터 절반만 지원합니다. 이 옵션을 지정하지 않으면 -march=z80+xyhl+infc로 간주됩니다.
지정된 접두사가 있는 모든 레이블을 로컬로 표시합니다. 그러나 이러한 레이블은 코드에서 명시적으로 전역으로 표시될 수 있습니다. 이 옵션은 기본 로컬 레이블 접두사 .L을 변경하지 않고 새 항목을 추가하기만 합니다.
콜론 없는 레이블을 허용합니다. 행 시작의 모든 기호는 레이블로 처리됩니다.
SDCC에서 생성한 어셈블러 코드를 수락합니다.
단정밀도 부동 소수점 숫자 형식. 기본값: ieee754(32비트).
배정밀도 부동 소수점 숫자 형식. 기본값: ieee754(64비트).
gcc (1), ld (1), and the Info entries for binutils and ld.
Copyright (c) 1991-2023 Free Software Foundation, Inc.
GNU 자유 문서 라이선스 버전 1.3 또는 자유 소프트웨어 재단에서 발행한 이후 버전의 조건에 따라 이 문서를 복사, 배포 및/또는 수정할 수 있는 권한이 부여됩니다. 고정 섹션 없음, 앞 표지 텍스트 없음 및 뒤 표지 텍스트 없음. 라이센스 사본은 GNU 무료 문서 라이센스 섹션에 포함되어 있습니다.