[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 04/11] tcg-sparc: Use ADDXC in setcond_i64
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PULL 04/11] tcg-sparc: Use ADDXC in setcond_i64 |
Date: |
Mon, 22 Sep 2014 13:57:34 -0700 |
Similar to the ADDC tricks we use in setcond_i32.
Signed-off-by: Richard Henderson <address@hidden>
---
tcg/sparc/tcg-target.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/tcg/sparc/tcg-target.c b/tcg/sparc/tcg-target.c
index 3b232d6..d0bd08c 100644
--- a/tcg/sparc/tcg-target.c
+++ b/tcg/sparc/tcg-target.c
@@ -716,6 +716,23 @@ static void tcg_out_setcond_i32(TCGContext *s, TCGCond
cond, TCGReg ret,
static void tcg_out_setcond_i64(TCGContext *s, TCGCond cond, TCGReg ret,
TCGReg c1, int32_t c2, int c2const)
{
+ if (use_vis3_instructions) {
+ switch (cond) {
+ case TCG_COND_NE:
+ if (c2 != 0) {
+ break;
+ }
+ c2 = c1, c2const = 0, c1 = TCG_REG_G0;
+ /* FALLTHRU */
+ case TCG_COND_LTU:
+ tcg_out_cmp(s, c1, c2, c2const);
+ tcg_out_arith(s, ret, TCG_REG_G0, TCG_REG_G0, ARITH_ADDXC);
+ return;
+ default:
+ break;
+ }
+ }
+
/* For 64-bit signed comparisons vs zero, we can avoid the compare
if the input does not overlap the output. */
if (c2 == 0 && !is_unsigned_cond(cond) && c1 != ret) {
--
1.9.3
- [Qemu-devel] [PULL 00/11] tcg updates, Richard Henderson, 2014/09/22
- [Qemu-devel] [PULL 01/11] tcg-sparc: Support addsub2_i64, Richard Henderson, 2014/09/22
- [Qemu-devel] [PULL 02/11] tcg-sparc: Use ADDXC in addsub2_i64, Richard Henderson, 2014/09/22
- [Qemu-devel] [PULL 04/11] tcg-sparc: Use ADDXC in setcond_i64,
Richard Henderson <=
- [Qemu-devel] [PULL 03/11] tcg-sparc: Fix setcond_i32 uninitialized value, Richard Henderson, 2014/09/22
- [Qemu-devel] [PULL 05/11] tcg-sparc: Rename ADDX/SUBX insns, Richard Henderson, 2014/09/22
- [Qemu-devel] [PULL 07/11] tcg: Compress TCGLabelQemuLdst, Richard Henderson, 2014/09/22
[Qemu-devel] [PULL 06/11] tcg-sparc: Use UMULXHI instruction, Richard Henderson, 2014/09/22
[Qemu-devel] [PULL 08/11] tcg: Move TCG_TYPE_COUNT out of enum TCGType, Richard Henderson, 2014/09/22
[Qemu-devel] [PULL 10/11] qemu/compiler: Define QEMU_ARTIFICIAL, Richard Henderson, 2014/09/22