32位寄存器扩展为64位

gaofanfan 2009-02-10 10:32:58
加精
背景:在进行操作数扩展的时候,有0扩展和符号位扩展两种。现在想将x86平台上的32位寄存器,翻译到mips平台上,而mips平台只能是64位的。如下:
add %eax,%ebx
mov %edx,%eax
通常情况下:%eax寄存器在add指令中已经进行扩展了,在mov指令中也会进行扩展。
而实际上:因为在add中已经进行扩展,那么在mov指令中就不需要扩展。
现在设计一个方案,将对mov指令中对%eax寄存器扩展操作取消,也就是减少代码冗余。

谢谢各位的意见和建议,小弟在线等待各位的答案!
...全文
473 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangcheng11668 2009-02-26
  • 打赏
  • 举报
回复
o(∩_∩)o...
路过!
jin1longwei 2009-02-25
  • 打赏
  • 举报
回复
都没接触过,是我太懒了,还是这问题太难了。
wangbingchang1 2009-02-24
  • 打赏
  • 举报
回复
路过帮忙顶
ZX_XUYUNZHI 2009-02-24
  • 打赏
  • 举报
回复
路过...帮顶....
alfonso984 2009-02-24
  • 打赏
  • 举报
回复
帮顶 呵呵
lingyin55 2009-02-23
  • 打赏
  • 举报
回复
mark
mayi993 2009-02-23
  • 打赏
  • 举报
回复
很深奥呦,不懂,不过我会学习的。
xiaopoy 2009-02-23
  • 打赏
  • 举报
回复
根据opcode罗列出所有的add操作
若被操作数是64byte的则根据add结果保存的容器判断后续的opcode中是否需要更改。
在重新被赋值前对这个64byte容器的操作都修改为只操作32bytes即可。
不过做起来却也麻烦了,只提供思路,自己这种眼高手低干活偷懒的且不提供实际应用的东西了。
彬子哥 2009-02-16
  • 打赏
  • 举报
回复
路过...帮顶....
netlib 2009-02-13
  • 打赏
  • 举报
回复
这个问题...不了解

566

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧