blob: f0b3012b6705a6e5609ad5df28965b512d423413 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <stdint.h>
#include "liblow.h"
uint64_t cmovznz(uint64_t t, uint64_t z, uint64_t nz) {
asm ("testq %1, %1;" "\n"
"\t" "cmovnzq %3, %0;"
:"=r"(z)
:"r"(t), "0"(z), "r"(nz)
);
return z;
}
uint64_t cmovznz64(uint64_t t, uint64_t z, uint64_t nz) {
return cmovznz(t, z, nz);
}
|