summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/sparc/sparc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/sparc/sparc.cpp')
-rw-r--r--src/devices/cpu/sparc/sparc.cpp26
1 files changed, 9 insertions, 17 deletions
diff --git a/src/devices/cpu/sparc/sparc.cpp b/src/devices/cpu/sparc/sparc.cpp
index 8717d56e22e..9bdd1bfbad5 100644
--- a/src/devices/cpu/sparc/sparc.cpp
+++ b/src/devices/cpu/sparc/sparc.cpp
@@ -1211,17 +1211,6 @@ uint32_t sparc_base_device::execute_max_cycles() const noexcept
//-------------------------------------------------
-// execute_input_lines - return the number of
-// input/interrupt lines
-//-------------------------------------------------
-
-uint32_t sparc_base_device::execute_input_lines() const noexcept
-{
- return 16;
-}
-
-
-//-------------------------------------------------
// execute_set_input - set the state of an input
// line during execution
//-------------------------------------------------
@@ -4291,13 +4280,13 @@ void sparcv8_device::execute_mul(uint32_t op)
uint32_t result = 0;
if (UMUL || UMULCC)
{
- uint64_t dresult = (uint64_t)RS1REG * (uint64_t)operand2;
+ uint64_t dresult = mulu_32x32(RS1REG, operand2);
Y = (uint32_t)(dresult >> 32);
result = (uint32_t)dresult;
}
else if (SMUL || SMULCC)
{
- int64_t dresult = (int64_t)(int32_t)RS1REG * (int64_t)(int32_t)operand2;
+ int64_t dresult = mul_32x32(RS1REG, operand2);
Y = (uint32_t)(dresult >> 32);
result = (uint32_t)dresult;
}
@@ -4482,19 +4471,22 @@ void sparc_base_device::run_loop()
continue;
}*/
- if (CHECK_DEBUG)
- debugger_instruction_hook(PC);
-
if (MODE == MODE_RESET)
{
+ if (CHECK_DEBUG)
+ debugger_wait_hook();
reset_step();
}
else if (MODE == MODE_ERROR)
{
+ if (CHECK_DEBUG)
+ debugger_wait_hook();
error_step();
}
else if (MODE == MODE_EXECUTE)
{
+ if (CHECK_DEBUG)
+ debugger_instruction_hook(PC);
execute_step();
}
@@ -4518,7 +4510,7 @@ void sparc_base_device::run_loop()
void sparc_base_device::execute_run()
{
- bool debug = machine().debug_flags & DEBUG_FLAG_ENABLED;
+ const bool debug = debugger_enabled();
if (m_bp_reset_in)
{