1. intrincis 接口添加
2.迭代器使用
3.标准模板名指令的使用
4.自定义constraint,predicate
5.寄存器限制
6.添加一个条件跳转指令
通过emit_insn把对应的rtl表达式插入insn链表中,gcc/emit-rtl.c
build-gcc-newlib-stage1->gcc->insn-emit.c中会根据riscv.md生成相应的函数
GCC添加一个新指令
1.riscv.md文件中添加指令模板
2.添加instricsic接口
riscv-gcc/gcc/config/riscv/riscv-builtins.c中struct riscv-builtin-description将此结构体的元素一一build,
①会生成一些代码,build-gcc-newlib-stage1/gcc/insn-codes.h中会增加CODE_FOR_*= (类似枚举)
② riscv-gcc/gcc/config/riscv/riscv-ftypes.def
③ riscv-gcc/gcc/config/riscv/riscv-builtins.c中增加avail 3条 riscv_builtins[]
riscv_builtin_avail_muli, AVAIL(指令);riscv_builtins[];