summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/scudsp/scudsp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/scudsp/scudsp.cpp')
-rw-r--r--src/devices/cpu/scudsp/scudsp.cpp12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/devices/cpu/scudsp/scudsp.cpp b/src/devices/cpu/scudsp/scudsp.cpp
index 4f4d697a900..2f8c2d0e0a6 100644
--- a/src/devices/cpu/scudsp/scudsp.cpp
+++ b/src/devices/cpu/scudsp/scudsp.cpp
@@ -611,15 +611,13 @@ void scudsp_cpu_device::scudsp_move_immediate( uint32_t opcode )
{
if ( scudsp_compute_condition( (opcode & 0x3F80000 ) >> 19 ) )
{
- value = opcode & 0x7ffff;
- if ( value & 0x40000 ) value |= 0xfff80000;
+ value = util::sext( opcode, 19 );
scudsp_set_dest_mem_reg_2( (opcode & 0x3C000000) >> 26, value );
}
}
else
{
- value = opcode & 0x1ffffff;
- if ( value & 0x1000000 ) value |= 0xfe000000;
+ value = util::sext( opcode, 25 );
scudsp_set_dest_mem_reg_2( (opcode & 0x3C000000) >> 26, value );
}
m_icount -= 1;
@@ -989,10 +987,6 @@ void scudsp_cpu_device::device_start()
state_add( STATE_GENPCBASE, "CURPC", m_pc ).noshow();
state_add( STATE_GENFLAGS, "GENFLAGS", m_flags ).formatstr("%17s").noshow();
- m_out_irq_cb.resolve_safe();
- m_in_dma_cb.resolve_safe(0);
- m_out_dma_cb.resolve_safe();
-
set_icountptr(m_icount);
}
@@ -1023,7 +1017,7 @@ void scudsp_cpu_device::data_map(address_map &map)
scudsp_cpu_device::scudsp_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: cpu_device(mconfig, SCUDSP, tag, owner, clock)
, m_out_irq_cb(*this)
- , m_in_dma_cb(*this)
+ , m_in_dma_cb(*this, 0)
, m_out_dma_cb(*this)
, m_program_config("program", ENDIANNESS_BIG, 32, 8, -2, address_map_constructor(FUNC(scudsp_cpu_device::program_map), this))
, m_data_config("data", ENDIANNESS_BIG, 32, 8, -2, address_map_constructor(FUNC(scudsp_cpu_device::data_map), this))