Huawei Proprietary - Restricted Distribution
19
Bitmanipulation Extension
• Zba, Zbb, Part of Zbs
• Reduce code size
public static long reverseBytes(long i) {
i = (i & 0x00ff00ff00ff00ffL) << 8 | (i >>> 8) &
0x00ff00ff00ff00ffL;
return (i << 48) | ((i & 0xffff0000L) << 16) |
((i >>> 16) & 0xffff0000L) | (i >>> 48);
}
lui t2,0xff0
addiw t2,t2,255
slli t2,t2,0x10
addi t2,t2,255 # 0xff00ff
slli t2,t2,0x10
addi t2,t2,255
and t3,a1,t2
srli t4,a1,0x8
and t2,t4,t2
slli t3,t3,0x8
or t2,t3,t2
lui t3,0x10
addiw t3,t3,-1
slli t3,t3,0x10
and t4,t2,t3
srli t6,t2,0x10
slli t4,t4,0x10
slli t5,t2,0x30
and t3,t6,t3
or t4,t5,t4
srli t2,t2,0x30
or t3,t4,t3
or a0,t3,t2
revb8