aboutsummaryrefslogtreecommitdiff
path: root/core/tri.h
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-03-31 23:10:44 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2024-03-31 23:10:44 +0300
commitab276c733ce9dc80983e5c8ae5c530e1477cf990 (patch)
treeef5da32c91d27da7a53a26e8d501f0ea616558c8 /core/tri.h
parenta152fbd956cc9cb9c05a233abe004ba3d12767a0 (diff)
downloadtri-ab276c733ce9dc80983e5c8ae5c530e1477cf990.tar.gz
tri-ab276c733ce9dc80983e5c8ae5c530e1477cf990.zip
implement more meta instructions
+ Also have a working draft of ABI names for registers, matches qbt currently but should probably codify somewhere
Diffstat (limited to 'core/tri.h')
-rw-r--r--core/tri.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/core/tri.h b/core/tri.h
index e4336ec..3837e95 100644
--- a/core/tri.h
+++ b/core/tri.h
@@ -576,9 +576,9 @@ static inline int tri_sign(tri_t t)
int lz = __builtin_clzll(t);
if (lz % 2 == 0)
- return 1;
+ return -1;
- return -1;
+ return 1;
}
static inline bool tri_eq(tri_t a, tri_t b)
@@ -590,10 +590,10 @@ static inline bool tri_lt(tri_t a, tri_t b)
{
tri_t r = tri_sub(a, b);
int s = tri_sign(r);
- if (s >= 0)
- return false;
+ if (s < 0)
+ return true;
- return true;
+ return false;
}
static inline bool tri_le(tri_t a, tri_t b)
@@ -603,12 +603,12 @@ static inline bool tri_le(tri_t a, tri_t b)
static inline bool tri_gt(tri_t a, tri_t b)
{
- return tri_le(b, a);
+ return tri_gt(b, a);
}
static inline bool tri_ge(tri_t a, tri_t b)
{
- return tri_lt(b, a);
+ return tri_le(b, a);
}
#define tri_illegal_op()\