PowerPC 和 clrlslwi - 或 - rlwinm 指令

PowerPC and the clrlslwi -or- rlwinm instruction

我已经阅读了这里的其他帖子,但仍然对 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)