您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 股票报告 > [本科毕业设计] 基于Minisystem 的GCC 编译器的移植
毕业设计(论文)报告题目基于Minisystem的GCC编译器的移植计算机科学与工程学院院(系)计算机科学与技术专业学号09006309学生姓名马小京指导教师王晓蔚起讫日期2010.3—2010.6设计地点计算机楼2010年6月7日基于Minisystem的GCC编译器的移植09006309马小京指导教师王晓蔚摘要根据MiniSystem系统的编译需要,研究并分析GCC的编译过程以及移植原理。通过对GCC编译器后端的研究和RTL语言的理解,说明后端编译时编译器的处理过程;给出移植过程中对机器定义中INSN的修改和新建的方法,以及机器定义中RTL的含义和作用。以编译过程中典型的指令模板为例子,使用移植后的编译器对C程序片段进行编译,说明了GCC移植的方法并列出编译产生的结果。同时,在移植过程中根据指令集设置对编译器进行优化,讨论并且对优化前后的编译器进行了对比。关键词:编译器,GCC,移植,RTLiGCCPortingonMiniSystem09006309MaXiaojingWangXiaoweiAbstractBasedonthedemandofprogramcompileonMiniSystem,theprojectpreparedforre-searchandanalysethecompileprocessandportingprincipleofGCC.Throughastudyintheback-endofGCCandtounderstandtheRTLlanguage,thethesisexplainstheoperationpro-cessesoftheback-endcompile.ThenshowshowtomodifyorcreateaINSNdefinitioninthemachine-definitionoftheporting,alsoindicatesthemeaningandfunctionofRTLinthemachine-definition.Takesseveraltypicalinstructiontemplatesasexample,wecompiledtheClanguageprogrambyportedcompilerandillustratetheresultofuser-definedcompilethroughGCCporting.Meanwhile,thecompilerwasoptimizedbasedonthesetofinstructions.Thenthethesisdiscussedandcomparedwiththeoriginalandoptimizedcimpiler.Keywords:Compiler,GCC,Porting,RTLii本论文专用术语的注释表GCC:GNU编译器集合。移植:使得GCC可以编译在新定义处理器体系下运作。RTL:寄存器转换语言,在GCC编译中间起转换作用的描述语言。前端:Front-end,GCC编译器中跟机器无关而跟编程语言相关的前向处理部分。后端:Back-end,GCC编译器中跟语言无关而跟目标机器平台相关的后续处理部分。汇编语言:一种与机器硬件紧密相关的底层程序语言,与机器语言存在部分对应关系。机器语言:二进制程序代码,计算机能够直接识别并且执行,程序直接通过计算机硬件结构赋予操作功能。同时,与硬件对应意味着无法再不同结构的计算机上执行。指令集:计算机架构中与程序运行的相关内容。包含了本身的数据类型,指令,寄存器,地址模型,存储结构,中断以及意外处理,I/O处理等。一个指令集包括一系列的指令(机器语言)定义,以及和处理器相关的运行命令。机器描述:GCC后端编译中对目标平台指令集进行描述的文件,编译过程中GCC会将中间代码来匹配机器描述用来生成汇编程序。iii目录要········································iAbstract······································ii本论文用术语的注释表·····························iii目录········································iv第一章绪论(前言)································11.1课题研究背景..................................11.2课题研究目的和意义..............................11.3国内外研究状况.................................21.4论文主要研究内容................................21.5论文组织结构..................................3第二章GCC移植系统和平台介绍························42.1GCC编译器...................................42.2MiniSystem....................................52.3ABI........................................52.3.1编译与移植环境.............................5第三章GCC编译与GCC移植··························73.1GCC的编译原理和过程.............................73.1.1前端Front-end..............................83.1.2中间接口/程序代码优化........................83.1.3后端Back-end..............................83.1.4RTL....................................83.2GCC的移植原理和方法.............................93.2.1target.h..................................93.2.2target.c..................................93.2.3target.md.................................103.2.4匹配原理.................................113.2.5移植方法.................................13第四章GCC移植的详细过程··························164.1算数指令.....................................164.1.1ADD,ADDI...............................164.1.2SUB,SUBI................................17iv4.1.3验证...................................184.2逻辑指令.....................................204.2.1AND,OR,XOR..............................204.2.2NOR,NORI...............................204.2.3NAND,NANDI,EQL,EQLI.......................204.2.4验证...................................214.3其他指令.....................................224.3.1SW,LW,LB................................224.3.2寄存器的立即数存储..........................224.3.3MOV...................................234.3.4BNE,BEQ................................234.3.5JLI,JI,JR.................................234.3.6AL,AR,SL,SR..............................244.3.7比较指令.................................24第五章编译器综合测试·····························255.1实现命令.....................................255.2综合验证.....................................26第六章GCC-MiniSys2交叉编译器························296.1编译环境与编译器设置.............................296.2编译器的使用..................................296.2.1编译器命令行界面...........................296.2.2编译程序.................................306.2.3编译调试.................................306.2.4RTL片段输出..............................306.2.5GCC编译器的优化...........................316.2.6汇编程序注释..............................326.2.7程序成本统计..............................326.3IDE集成/高级编译器界面............................32第七章项目总结·································347.1研究成果与说明.................................347.2总结........................................347.3展望........................................35参考文献······································36附录A研究与开发环境·····························37A.1Ubuntu......................................37A.2GEDIT......................................37A.3Notepad++....................................37A.4LATEX.......................................38A.4.1seuthesis.................................38v第一章绪论(前言)1.1课题研究背景对于一款成熟的计算机处理器而言,一个完善的、合适的编译器是其正常并且高效作用的关键。而对于MiniSystem这款基于FPGA的软核处理器来说,只进行汇编程序的开发是对处理器资源的浪费,汇编语言编程周期长,代码调试不方便,同时也是实现复杂程序功能的一个重要瓶颈[1]。这里就需要设计编译器对高级语言程序进行编译,进而可以对处理器进行有效的利用。编译器的开发有两种方法可以选用,第一种是根据硬件平台的设计完全编写一个可以使用编译器
本文标题:[本科毕业设计] 基于Minisystem 的GCC 编译器的移植
链接地址:https://www.777doc.com/doc-4189361 .html