@c Copyright (C) 2023-2024 Free Software Foundation, Inc.
@c Contributed by Kalray SA.
@c This is part of the GAS manual.
@c For copying conditions, see the file as.texinfo.
@c man end

@ifset GENERIC
@page
@node KVX-Dependent
@chapter KVX Dependent Features
@end ifset

Labels followed by `::' are extern symbols.

@ifclear GENERIC
@node Machine Dependencies
@chapter KVX Dependent Features
@end ifclear

@cindex KVX support
@menu
* KVX Options::         Options
* KVX Directives::      KVX Machine Directives
@end menu

@node KVX Options
@section Options
@cindex KVX Options
@cindex options for KVX

@c man begin OPTIONS
@table @gcctabopt

@cindex @samp{--dump-insn} option, KVX
@item --dump-insn
Dump the full list of instructions.

@cindex @samp{-march} option, KVX
@item -march=
The assembler supports the following architectures: kv3-1, kv3-2.

@cindex @samp{--check-resources} option, KVX
@item --check-resources
Check that each bundle does not use more resources than available.  This is the
default.

@cindex @samp{--no-check-resources} option, KVX
@item --no-check-resources
Do not check that each bundle does not use more resources than available.

@cindex @samp{--generate-illegal-code} option, KVX
@item --generate-illegal-code
For debugging purposes only.  In order to properly work, the bundle is sorted
with respect to the issues it uses.  If this option is turned on the assembler
will not sort the bundle instructions and illegal bundles might be formed unless
they were properly sorted by hand.

@cindex @samp{--dump-table} option, KVX
@item --dump-table
Dump the table of opcodes.

@cindex @samp{--mpic} option, KVX
@cindex @samp{--mPIC} option, KVX
@item --mpic | --mPIC
Generate position independent code.

@cindex @samp{--mnopic} option, KVX
@item --mnopic
Generate position dependent code.

@cindex @samp{-m32} option, KVX
@item -m32
Generate 32-bits code.

@cindex @samp{--all-sfr} option, KVX
@item --all-sfr
This switch enables the register class "system register".  This register
class is used when performing system validation and allows the full class of
system registers to be used even on instructions that are only valid with some
specific system registers.

@cindex @samp{--diagnostics} option, KVX
@item --diagnostics
Print multi-line errors.  This is the default.

@cindex @samp{--no-diagnostics} option, KVX
@item --no-diagnostics
Print succinct diagnostics on one line.

@end table
@c man end

@node KVX Directives
@section KVX Machine Directives

@cindex machine directives, AArch64
@cindex AArch64 machine directives
@table @code

@cindex @code{.align} directive, KVX
@item .align ALIGNMENT
Pad with NOPs until the next boundary with the required ALIGNMENT.

@cindex @code{.dword} directive, KVX
@item .dword
Declare a double-word-sized (8 bytes) constant.

@cindex @code{.endp} directive, KVX
@item .endp [PROC]
This directive marks the end of the procedure PROC.  The name of the procedure
is always ignored (it is only here as a visual indicator).

@smallexample
.proc NAME
...
.endp NAME
@end smallexample

is equivalent to the more traditional

@smallexample
.type NAME, @@function
...
.size NAME,.-NAME
@end smallexample

@cindex @code{.file} directive, KVX
@item .file
This directive is only supported when producing ELF files.
@pxref{File,,@code{.file}} for details.

@cindex @code{.loc} directive, KVX
@item .loc FILENO LINENO
This directive is only supported when producing ELF files.
@pxref{Line,,@code{.line}} for details.

@cindex @code{.proc} directive, KVX
@item .proc PROC
This directive marks the start of procedure, the name of the procedure PROC is
mandatory and all @code{.proc} directive should be matched by exactly one
@code{.endp} directive.

@cindex @code{.word} directive, KVX
@item .word
Declare a word-sized (4 bytes) constant.

@end table
