From 5dc22ca8fd325315c5d24b6ed6a037cc38e86527 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 25 Sep 2022 22:28:50 -0400 Subject: eminline.h: Additions - Add mul_16x16 inline function to perform a signed 16x16-bit multiplication with 32-bit result. This was moved from cpu/e132xs to unite it with the analogous 32x32 operations. - Add rotl_32, rotr_32, rotl_64 and rotr_64 inline functions to perform 32-bit and 64-bit circular shifts in either direction by the specified number of places, modulo 32 or 64. It is anticipated that these will eventually be replaced by standard functions in C++20's header, and so they have been given similar signatures and semantics (which are also validity-checked). - Remove LSL, LSR, ROL and ROR macros from cpu/arm and cpu/arm7 to ameliorate unnecessary obfuscation. --- src/devices/cpu/scudsp/scudsp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/devices/cpu/scudsp/scudsp.cpp') diff --git a/src/devices/cpu/scudsp/scudsp.cpp b/src/devices/cpu/scudsp/scudsp.cpp index 517688c226b..4f4d697a900 100644 --- a/src/devices/cpu/scudsp/scudsp.cpp +++ b/src/devices/cpu/scudsp/scudsp.cpp @@ -498,7 +498,7 @@ void scudsp_cpu_device::scudsp_operation(uint32_t opcode) /* Unrecognized opcode */ break; case 0xF: /* RL8 */ - i3 = ((m_acl.si << 8) & 0xffffff00) | ((m_acl.si >> 24) & 0xff); + i3 = rotl_32(m_acl.si, 8); m_alu = i3; SET_Z( i3 == 0 ); SET_S( i3 < 0 ); -- cgit v1.2.3-70-g09d2