浅谈RISC无条件转移指令
在以前的文章中,我分享了RISC-V用户可以在基本指令集的基础上面,进行定制化的设计,但是无论怎样,都要能够支撑整数基本指令集,可以看出基本指令集的重要性。我们已经详细介绍了RISC-V中非常重要的整数计算指令。想了解的同学可以看以前的文章"浅谈RISC-V指令集(二)- 整数计算指令"。今天我们继续分享RISC-V中的控制转移指令。
控制转移指令
在RISC-V中常见的控制转移指令,主要有两类,如下所示:无条件转移;条件分支。
无条件跳转指令使用的是UJ类指令格式,立即数J在这里表示编码了一个2N的有符号数偏移量。在使用时,先对J进行符号扩展,再加到pc,就构成了跳转的目标地址,需要说明的是跳转的范围还是比较客观,可以到[-1MB,1MB]的范围。然后将跳转指令后面指令的地址(pc+4)放到rd寄存器中。
通常情况下,一般的无条件跳转指令,会被编码为rd=x0的指令。
在RISC-V中,间接跳转指令一般采用I类编码。基本指令格式如下图所示:
指令具体的操作步骤为:12bit的有符号数I类立即数加上基址rs1,得到结果。将结果中的最低位置0,将结果作为目标地址。跳转指令之后指令的地址为(pc+4),将这个结果保存到rd寄存器中。需要说明的是,如果不需要保留结果,就可以直接把x0当做目标寄存器。
特别的,如果得到的目标地址没有对齐到4bit边界,则无条件跳转指令和间接跳转指令都要产生一个指令取指的非对齐异常。
在RISC-V中,为了支持代码的位置无关性,所有的无条件跳转指令都采用pc相对寻址的方式,通过采用双指令序列的方式,可以跳转到32位地址空间的所有位置。具体过程是,首先将目标地址的高20bit加载到基址rs1中,接着间接跳转指令加上低12bit,就可以任意跳转到32位地址空间的任何地方。
需要注意的是,间接跳转指令和条件分支指令不同之处在于,间接跳转指令并不把12位立即数当做2bit的倍数。这样设计可以防止在硬件上再多出一种格式。间接跳转指令在设计上不考虑目标地址的最低位,有两个好处:降低硬件的复杂性;函数指针的最低位可存放别的信息。
这样做的后果是,会带来一些误差,因为可能导致目的指令地址错误,从而导致异常的产生。
在基址rs1=x0的情况下,间接跳转指令为了达到对小的运行时库调用快速的目的,可以通过单一指令的调用,进而做到从任意地址对最大正负2KB地址区域的调用。
小结
我们分享的RISC-V中,控制转移指令可以分为无条件转移,条件分支两种。今天只分享了无条件转移,后面我会继续分享条件分支以及RISC-V的其他指令内容,欢迎大家继续关注。
大变局下,如何安放好我们的财富大家好,我是老李。如果让我为2020年选择一个关键字,大变局可能是最合适的。2020年,全球犹如被风暴席卷过后一般残破不堪,海外新冠肺炎疫情尚未得到有效控制中美贸易摩擦继续恶化,经
财富自由,这个时代的骗局大家好,我是老李。这几年,财富自由的鸡汤故事愈发层出不穷我朋友85年的,30岁之前就靠做生意实现了财务自由。我90后,普通家庭自己创业开服装厂,买了四套房,算财务自由了吧。我爸爸没
央行发出最后通牒!房贷利率到底要不要转LPR?大家好,我是老李。相信最近有房贷的朋友基本都收到了一条短信来自于房贷银行的最后通牒。以建行为例,从8月25日起对房贷批量转换,从老合同转为LPR定价。不愿意转换的,可以在9月1日至
如今的你还想移民吗?大家好,我是老李。老李我最近认识一个新朋友Alex,是一个比较年轻的男生,不过从业经历还算丰富,最在财富管理公司工作了几年,2年前转行去了国内排名前三的移民公司做起了移民顾问,做的
丈母娘招女婿要求年化收益10,婚姻财富两手都要抓两手都要硬大家好,我是老李。最近,在上海著名的相亲角,有一位上海阿姨招女婿的条件火了先说清楚,这可不是段子,而是长期驻扎相亲角的某上海阿姨的真实诉求。那么我们今天就来就这一要求来好好探讨一番
买保险真的那么重要吗?大家好,我是老李。今天又聊回我的主业保险了,从业这几年来,其实老李我一直在思考保险到底是什么?保险的本质是什么?众所周知,保险是一种转移风险损失的金融工具,其本身并不具备抵御风险的
在巨大利益面前,不要试图考验亲情大家好,我是老李。生老病死这样子的一个轮回,是我们每个人都不可避免的。现在很多人都能开诚布公地谈论生死,过去,中国人都说养儿防老,但如今的社会形式却让许多人不禁感叹养老防儿!今天我
我们到底想把钱变成什么?大家好,我是老李。不知道各位朋友有没有想过这么一个问题,我们赚到的钱,也就是我们手里的钱,在最终都需要一个去处。可以说这些最终的去处就是我们的终极资产,那么我们到底有想好要把钱变成
小米有品电动小玩具,貌比潘安,4模式12功能,老罗直呼内行男人似乎天生就有喜爱科技与多用途工具的特性,除了关注手机AI智能机器人等各种科技产品,平时还喜欢收集一些玩具,在生活中这些工具也是能帮上不小的忙,没事还能拿出来把玩一下,男人的快乐
小米有品小钢炮,转速220rpm,5个鸡蛋轻,续航达一年说起男人对工具的执念,无异于女人对爱马仕香奈儿LV等包包以及雅诗兰黛兰蔻迪奥等化妆品的渴望。不管你爱不爱干活,压箱里的工具还是得备上一套。在众多的工具中,螺丝刀应该算得上使用频率比
AMD全面翻身,依靠Ryzen超车Intelr,成为世界第一如今半导体的时代变了,英特尔凭借多年的技术优势持续占据垄断优势,可大家在其一家独大的环境里也憋得太久了,都想冒头透透气。如今台积电和三星都准备在今年风险量产3nm了,先前卡10nm