摘要:PowerPC460是一种支持硬浮点模式的32位嵌入式处理器,包含一组32位通用寄存器和64位浮点寄存器。GCC编译器为其生成的配套工具链,在处理数据运算时,默认使用浮点寄存器存取64位整型数据,由此可以减小操作指令数量和寄存器的使用数量。但是浮点寄存器和通用寄存器内的数据对齐方式不同,在整型数据使用浮点寄存器时,被访问的地址必须满足其数据类型的位宽要求,否则会出现运行时使用数据的对齐异常的情况。操作系统在进行整型运算任务的上下文切换时,需要额外对浮点寄存器中的数据提供保护支持,从而产生额外的开销。本文提出了一种对GCC编译器的指令生成模块优化方法,在硬浮点模式下,使用通用寄存器处理64位整型数据运算;并且添加编译选项,保留了原有的全局优化方案。在PowerPC460板级上实验部署了国产嵌入式操作系统,进行功能测试和性能测试,结果表明在功能验证正确的情况下,任务切换时间有了约6.3%的性能提升。
文章目录
0 引 言
1 目标代码生成优化
1.1 样例程序说明
1.2 指令匹配过程
1.3 指令模板定义
2 后端优化方案实现
2.1 中间代码分析
2.2 模板指令修改
3 实验验证
3.1 功能正确性测试
3.2 系统性能验证
4 结 语