我已经在这里阅读了其他文章,但仍然对PPC和rlwinm有疑问。
我正在查看的示例是:
li r0, 0x100
clrlslwi r9, r0, 27,5 (which afaik is the same as rlwinm r9, r0,5,22,26)
首先我加载r0 = 0x100然后将r0左移5,因此r0 = 0x2000(无溢出,因此无需旋转)
使用第22至26位设置掩码= 0x3e0
带掩码的AND r0 = 0x2000 AND 0x3E0 = 0
我必须做错了...这将始终为0我想念什么?
是的(清除左单词并立即左移单词)
clrlslwi rA,rS,b,n (n ≤ b ≤ 31) = rlwinm rA,rS,n,b – n,31 – n
所以clrlslwi r9, r0, 27,5 = rlwinm r9, r0, 5, 22(27-5), 26(31-5)