diff options
author | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-09-16 22:44:02 +0000 |
---|---|---|
committer | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-09-16 22:44:02 +0000 |
commit | ae8ecd423150456e238a9d45f107b97e94957b78 (patch) | |
tree | 2dd1683e07b83d47ed4f2f58e5887f012eb9238f /target-alpha/op_helper.c | |
parent | ac509d88877c07bb06497206d74a2baa25b6d895 (diff) |
target-alpha: convert arith2 instructions to TCG
Replace gen_arith2 generic macro and dyngon ops by instruction specific
optimized TCG code.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5235 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-alpha/op_helper.c')
-rw-r--r-- | target-alpha/op_helper.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/target-alpha/op_helper.c b/target-alpha/op_helper.c index 36b98b8862..745c44df44 100644 --- a/target-alpha/op_helper.c +++ b/target-alpha/op_helper.c @@ -65,7 +65,7 @@ void helper_excp (uint32_t excp, uint32_t error) cpu_loop_exit(); } -void helper_amask (void) +uint64_t helper_amask (uint64_t arg) { switch (env->implver) { case IMPLVER_2106x: @@ -74,9 +74,10 @@ void helper_amask (void) case IMPLVER_21164: case IMPLVER_21264: case IMPLVER_21364: - T0 &= ~env->amask; + arg &= ~env->amask; break; } + return arg; } void helper_load_pcc (void) @@ -210,19 +211,19 @@ void helper_mulqv () T0 = tl; } -void helper_ctpop (void) +uint64_t helper_ctpop (uint64_t arg) { - T0 = ctpop64(T0); + return ctpop64(arg); } -void helper_ctlz (void) +uint64_t helper_ctlz (uint64_t arg) { - T0 = clz64(T0); + return clz64(arg); } -void helper_cttz (void) +uint64_t helper_cttz (uint64_t arg) { - T0 = ctz64(T0); + return ctz64(arg); } static always_inline uint64_t byte_zap (uint64_t op, uint8_t mskb) |