diff options
author | 2021-06-12 03:00:21 +1000 | |
---|---|---|
committer | 2021-06-13 09:38:01 +1000 | |
commit | 73d97b7dc492871d3dcf4ee919fc443dd2308dec (patch) | |
tree | c394cccb9d6514a5b8e69f054d5d27ecc50a5d58 /src/devices/cpu/drcbec.cpp | |
parent | 27b93b23486533747d9ba185ff54da860223a463 (diff) |
Added helpers for 64-bit count leading zeroes/ones.
Diffstat (limited to 'src/devices/cpu/drcbec.cpp')
-rw-r--r-- | src/devices/cpu/drcbec.cpp | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/devices/cpu/drcbec.cpp b/src/devices/cpu/drcbec.cpp index d8b30535d6e..f54e6416696 100644 --- a/src/devices/cpu/drcbec.cpp +++ b/src/devices/cpu/drcbec.cpp @@ -1062,11 +1062,11 @@ int drcbe_c::execute(code_handle &entry) break; case MAKE_OPCODE_SHORT(OP_LZCNT, 4, 0): // LZCNT dst,src - PARAM0 = count_leading_zeros(PARAM1); + PARAM0 = count_leading_zeros_32(PARAM1); break; case MAKE_OPCODE_SHORT(OP_LZCNT, 4, 1): - temp32 = count_leading_zeros(PARAM1); + temp32 = count_leading_zeros_32(PARAM1); flags = FLAGS32_NZ(temp32); PARAM0 = temp32; break; @@ -1675,17 +1675,11 @@ int drcbe_c::execute(code_handle &entry) break; case MAKE_OPCODE_SHORT(OP_LZCNT, 8, 0): // DLZCNT dst,src - if ((uint32_t)(DPARAM1 >> 32) != 0) - DPARAM0 = count_leading_zeros(DPARAM1 >> 32); - else - DPARAM0 = 32 + count_leading_zeros(DPARAM1); + DPARAM0 = count_leading_zeros_64(DPARAM1); break; case MAKE_OPCODE_SHORT(OP_LZCNT, 8, 1): - if ((uint32_t)(DPARAM1 >> 32) != 0) - temp64 = count_leading_zeros(DPARAM1 >> 32); - else - temp64 = 32 + count_leading_zeros(DPARAM1); + temp64 = count_leading_zeros_64(DPARAM1); flags = FLAGS64_NZ(temp64); DPARAM0 = temp64; break; |