diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2023-10-24 22:52:26 -0700 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2024-02-05 22:45:41 +0000 |
commit | 23c5692abc3917151dee36c00d751cf5bc46ef19 (patch) | |
tree | 2536aad6380115a50fdf516869ff8f052d0052e0 /tcg/tci.c | |
parent | 585b7a424759ee4b70b1e93feecac2530f26d25a (diff) | |
download | qemu-23c5692abc3917151dee36c00d751cf5bc46ef19.zip qemu-23c5692abc3917151dee36c00d751cf5bc46ef19.tar.gz qemu-23c5692abc3917151dee36c00d751cf5bc46ef19.tar.bz2 |
tcg/tci: Support TCG_COND_TST{EQ,NE}
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'tcg/tci.c')
-rw-r--r-- | tcg/tci.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -228,6 +228,12 @@ static bool tci_compare32(uint32_t u0, uint32_t u1, TCGCond condition) case TCG_COND_GTU: result = (u0 > u1); break; + case TCG_COND_TSTEQ: + result = (u0 & u1) == 0; + break; + case TCG_COND_TSTNE: + result = (u0 & u1) != 0; + break; default: g_assert_not_reached(); } @@ -270,6 +276,12 @@ static bool tci_compare64(uint64_t u0, uint64_t u1, TCGCond condition) case TCG_COND_GTU: result = (u0 > u1); break; + case TCG_COND_TSTEQ: + result = (u0 & u1) == 0; + break; + case TCG_COND_TSTNE: + result = (u0 & u1) != 0; + break; default: g_assert_not_reached(); } @@ -1041,6 +1053,8 @@ static const char *str_c(TCGCond c) [TCG_COND_GEU] = "geu", [TCG_COND_LEU] = "leu", [TCG_COND_GTU] = "gtu", + [TCG_COND_TSTEQ] = "tsteq", + [TCG_COND_TSTNE] = "tstne", }; assert((unsigned)c < ARRAY_SIZE(cond)); |