GCC学习9

文章详细介绍了如何在RISC-V架构的GCC编译器中添加新的指令,包括在riscv.md文件中定义指令模板,实现intrinsics接口,构建rtl表达式并插入insn链表,以及更新相关配置文件以使新指令生效。
摘要由CSDN通过智能技术生成

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[];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值