diff options
author | Richard Henderson <rth@twiddle.net> | 2016-11-16 11:33:48 +0100 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2017-01-10 08:06:11 -0800 |
commit | c3aa369e5d895b4a48339fd3dbb3f72228a8ecc9 (patch) | |
tree | 4c78914c4c1960e8ab6fdf8fb9d65afd66779b8e /target | |
parent | 0f9712b117cae2d8f01475faea662c3e1b57d5f7 (diff) | |
download | qemu-c3aa369e5d895b4a48339fd3dbb3f72228a8ecc9.zip qemu-c3aa369e5d895b4a48339fd3dbb3f72228a8ecc9.tar.gz qemu-c3aa369e5d895b4a48339fd3dbb3f72228a8ecc9.tar.bz2 |
target-tilegx: Use clz and ctz opcodes
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'target')
-rw-r--r-- | target/tilegx/helper.c | 10 | ||||
-rw-r--r-- | target/tilegx/helper.h | 2 | ||||
-rw-r--r-- | target/tilegx/translate.c | 4 |
3 files changed, 2 insertions, 14 deletions
diff --git a/target/tilegx/helper.c b/target/tilegx/helper.c index b4fba9c..b6f5e29 100644 --- a/target/tilegx/helper.c +++ b/target/tilegx/helper.c @@ -55,16 +55,6 @@ void helper_ext01_ics(CPUTLGState *env) } } -uint64_t helper_cntlz(uint64_t arg) -{ - return clz64(arg); -} - -uint64_t helper_cnttz(uint64_t arg) -{ - return ctz64(arg); -} - uint64_t helper_pcnt(uint64_t arg) { return ctpop64(arg); diff --git a/target/tilegx/helper.h b/target/tilegx/helper.h index 9281d0f..bab303a 100644 --- a/target/tilegx/helper.h +++ b/target/tilegx/helper.h @@ -1,7 +1,5 @@ DEF_HELPER_2(exception, noreturn, env, i32) DEF_HELPER_1(ext01_ics, void, env) -DEF_HELPER_FLAGS_1(cntlz, TCG_CALL_NO_RWG_SE, i64, i64) -DEF_HELPER_FLAGS_1(cnttz, TCG_CALL_NO_RWG_SE, i64, i64) DEF_HELPER_FLAGS_1(pcnt, TCG_CALL_NO_RWG_SE, i64, i64) DEF_HELPER_FLAGS_1(revbits, TCG_CALL_NO_RWG_SE, i64, i64) DEF_HELPER_FLAGS_3(shufflebytes, TCG_CALL_NO_RWG_SE, i64, i64, i64, i64) diff --git a/target/tilegx/translate.c b/target/tilegx/translate.c index 9c734ee..8a2df1b 100644 --- a/target/tilegx/translate.c +++ b/target/tilegx/translate.c @@ -608,12 +608,12 @@ static TileExcp gen_rr_opcode(DisasContext *dc, unsigned opext, switch (opext) { case OE_RR_X0(CNTLZ): case OE_RR_Y0(CNTLZ): - gen_helper_cntlz(tdest, tsrca); + tcg_gen_clzi_tl(tdest, tsrca, TARGET_LONG_BITS); mnemonic = "cntlz"; break; case OE_RR_X0(CNTTZ): case OE_RR_Y0(CNTTZ): - gen_helper_cnttz(tdest, tsrca); + tcg_gen_ctzi_tl(tdest, tsrca, TARGET_LONG_BITS); mnemonic = "cnttz"; break; case OE_RR_X0(FSINGLE_PACK1): |