aboutsummaryrefslogtreecommitdiff
path: root/liblow/cmovznz.c
blob: 8533ade99b0c72c26a2c02bbc402f3db5a4661db (plain)
1
2
3
4
5
6
7
8
9
10
#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;
}