The following table lists all available RISC-V specific directives.
.align size-log-2.half value.word value.dword value.dtprelword value.dtpreldword value.bss.uleb128 value.sleb128 value.option argument .option push
.option norelax
la gp, __global_pointer$
.option pop
in order to produce after linker relaxation the expected
auipc gp, %pcrel_hi(__global_pointer$)
addi gp, gp, %pcrel_lo(__global_pointer$)
instead of just
addi gp, gp, 0
It's not expected that options are changed in this manner during regular use, but there are a handful of esoteric cases like the one above where users need to disable particular features of the assembler for particular code sequences. The complete list of option arguments is shown below:
pushpoprvcnorvcpicnopicrelaxnorelax.insn value.insn value.attribute tag, valueThe tag is either an attribute number, or one of the following:
Tag_RISCV_arch, Tag_RISCV_stack_align,
Tag_RISCV_unaligned_access, Tag_RISCV_priv_spec,
Tag_RISCV_priv_spec_minor, Tag_RISCV_priv_spec_revision.