C-SKY Dependent Features
************************

Options
=======

-march=ARCHNAME
     Assemble for architecture ARCHNAME.  The --help option lists valid values for ARCHNAME.

-mcpu=CPUNAME
     Assemble for architecture CPUNAME.  The --help option lists valid values for CPUNAME.

-EL
-mlittle-endian
     Generate little-endian output.

-EB
-mbig-endian
     Generate big-endian output.

-fpic
-pic
     Generate position-independent code.

-mljump
-mno-ljump
     Enable/disable transformation of the short branch instructions jbf, jbt, and jbr to jmpi. This option is for V2 processors only. It is ignored on CK801 and CK802 targets, which do not support the jmpi instruction, and is enabled by default for other processors.

-mbranch-stub
-mno-branch-stub
     Pass through R_CKCORE_PCREL_IMM26BY2 relocations for bsr instructions to the linker.

     This option is only available for bare-metal C-SKY V2 ELF targets, where it is enabled by default.  It cannot be used in code that will be dynamically linked against shared libraries.

-force2bsr
-mforce2bsr
-no-force2bsr
-mno-force2bsr
     Enable/disable transformation of jbsr instructions to bsr. This option is always enabled (and -mno-force2bsr is ignored) for CK801/CK802 targets.  It is also always enabled when -mbranch-stub is in effect.

-jsri2bsr
-mjsri2bsr
-no-jsri2bsr
-mno-jsri2bsr
     Enable/disable transformation of jsri instructions to bsr. This option is enabled by default.

-mnolrw
-mno-lrw
     Enable/disable transformation of lrw instructions into a movih/ori pair.

-melrw
-mno-elrw
     Enable/disable extended lrw instructions. This option is enabled by default for CK800-series processors.

-mlaf
-mliterals-after-func
-mno-laf
-mno-literals-after-func
     Enable/disable placement of literal pools after each function.

-mlabr
-mliterals-after-br
-mno-labr
-mnoliterals-after-br
     Enable/disable placement of literal pools after unconditional branches. This option is enabled by default.

-mistack
-mno-istack
     Enable/disable interrupt stack instructions.  This option is enabled by default on CK801, CK802, and CK802 processors.

The following options explicitly enable certain optional instructions. These features are also enabled implicitly by using -mcpu= to specify a processor that supports it.

-mhard-float
     Enable hard float instructions.

-mmp
     Enable multiprocessor instructions.

-mcp
     Enable coprocessor instructions.

-mcache
     Enable cache prefetch instruction.

-msecurity
     Enable C-SKY security instructions.

-mtrust
     Enable C-SKY trust instructions.

-mdsp
     Enable DSP instructions.

-medsp
     Enable enhanced DSP instructions.

-mvdsp
     Enable vector DSP instructions.

Syntax
======

AS implements the standard C-SKY assembler syntax documented in the C-SKY V2 CPU Applications Binary Interface Standards Manual.