小编yud*_*dre的帖子

零/符号扩展是无操作,为什么然后为每种大小类型的指令?

对于x86和x64编译器,生成类似的零/符号扩展MOVSX和MOVZX.扩展本身并不是免费的,但允许处理器执行无序魔术加速.

但是在RISC-V上:

因此,无符号和带符号的32位整数之间的转换是无操作,从有符号的32位整数到带符号的64位整数的转换也是如此.

添加和移位需要一些新指令(ADD [I] W/SUBW/SxxW)以确保32位值的合理性能.

(C)RISC-V Spec

但与此同时,新的现代RISC-V 64位处理器包含32位有符号整数的指令.为什么?提高性能?那么8位和16位呢?我已经什么都不懂了.

assembly sign-extension riscv zero-extension

2
推荐指数
1
解决办法
424
查看次数

标签 统计

assembly ×1

riscv ×1

sign-extension ×1

zero-extension ×1