[发明专利]一种RISC处理器应用程序编译中立即数的锚地址装载方法有效

专利信息
申请号: 201110141121.4 申请日: 2011-05-27
公开(公告)号: CN102207882A 公开(公告)日: 2011-10-05
发明(设计)人: 李春强;葛海通;严晓浪 申请(专利权)人: 杭州中天微系统有限公司
主分类号: G06F9/45 分类号: G06F9/45
代理公司: 杭州天正专利事务所有限公司 33201 代理人: 王兵;王利强
地址: 310012 浙江省杭州*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 risc 处理器 应用程序 编译 立即 锚地 装载 方法
【权利要求书】:

1.一种RISC处理器应用程序编译中立即数的锚地址装载方法,其特征在于:所述应用程序包括代码段和数据段;

为应用程序的代码段分配一个通用寄存器存放代码段锚地址Rx,并将其初始化为代码段的基地址,当应用程序需要装载一个代码段符号地址立即数IAx时,采用公式(Rx)+{IAx-(Rx)}对应的处理器加法指令实现锚地址装载;

同时,为应用程序的数据段分配一个通用寄存器作为数据段锚地址Ry,并将其初始化为数据段基地址,当应用程序需要装载一个数据段符号地址立即数IAy时,采用公式(Ry)+{IAy-(Ry)}对应的处理器加法指令实现锚地址装载。

2.如权利要求1所述的RISC处理器应用程序编译中立即数的锚地址装载方法,其特征在于:所述锚地址装载方法包括以下步骤:

(1)为应用程序分配两个寄存器Rx,Ry,分别用于存放代码段锚地址和数据段锚地址;

(2)定义代码段地址立即数锚地址装载的重定位信息数组ARx,并做初始化;如果应用程序的代码段的地址Lx处需要装载属于代码段的地址立即数IAx到寄存器Rm,则生成一个代码段重定位信息RELx存放在数组ARx中,该信息包含需要重定位的代码段地址Lx,代码段符号地址立即数IAx和寄存器Rm;

(3)定义代码段地址立即数锚地址装载的重定位信息数组ARy,并做初始化;如果处理器应用程序的代码段的地址Ly处需要装载属于数据段的地址立即数IAy到寄存器Rn,则生成一个数据段重定位信息RELy存放在数组ARy中,该信息包含需要重定位的代码段地址Ly,数据段符号地址立即数IAy和寄存器Rn;

(4)对各输入文件的代码段和数据段进行链接,将链接结果重新输出到目标应用程序的代码段和数据段,并暂存输出目标应用程序的代码段锚地址为At和数据段锚地址为Ad;

(5)对各输入的代码段和数据段进行链接时,扫描步骤(2)输出的重定位信息数组ARx,对数组中每个代码段重定位信息RELx做如下操作:

(5.1)根据步骤(2)中生成的RELx所包含的IAx和步骤(4)中暂存的At,计算IAx-At,暂存为代码段立即数偏移量OFFSETx;

(5.2)在RELx包含的Lx处,生成Rm<-(Rx)+OFFSETx对应的处理器加法指令;

(6)对各输入的代码段和数据段进行链接时,扫描步骤(3)输出的重定位信息数组ARy,对数组中每个数据段重定位信息RELy做如下操作:

(6.1)根据步骤(3)中生成的RELy所包含的IAy和步骤(4)中暂存的Ad,计算IAy-Ad,暂存为数据段立即数偏移量OFFSETy;

(6.2)在RELy包含数的Ly处,生成Rn<-(Ry)+OFFSETy对应的处理器加法指令;

(7)将步骤(1)的Rx初始化为步骤(4)暂存的代码段锚地址At,步骤(1)的Ry初始化为步骤(4)暂存的数据段锚地址Ad。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州中天微系统有限公司,未经杭州中天微系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201110141121.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top