mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-14 23:48:56 +00:00
This is closer to what we really want.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30451 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b7363791ed
commit
b33a42a21f
@ -260,12 +260,13 @@ quantum_sigma_x in 462.libquantum contains the following loop:
|
||||
Where MAX_UNSIGNED/state is a 64-bit int. On a 32-bit platform it would be just
|
||||
so cool to turn it into something like:
|
||||
|
||||
long long Res = ((MAX_UNSIGNED) 1 << target);
|
||||
if (target < 32) {
|
||||
for(i=0; i<reg->size; i++)
|
||||
reg->node[i].state ^= ((int) (1 << target));
|
||||
reg->node[i].state ^= Res & 0xFFFFFFFFULL;
|
||||
} else {
|
||||
for(i=0; i<reg->size; i++)
|
||||
reg->node[i].state ^= (long long)((int) (1 << (target-32))) << 32;
|
||||
reg->node[i].state ^= Res & 0xFFFFFFFF00000000ULL
|
||||
}
|
||||
|
||||
... which would only do one 32-bit XOR per loop iteration instead of two.
|
||||
|
Loading…
Reference in New Issue
Block a user