diff options
Diffstat (limited to 'src/devices/cpu/sparc')
-rw-r--r-- | src/devices/cpu/sparc/sparc.cpp | 26 | ||||
-rw-r--r-- | src/devices/cpu/sparc/sparc.h | 31 | ||||
-rw-r--r-- | src/devices/cpu/sparc/sparcdasm.h | 6 | ||||
-rw-r--r-- | src/devices/cpu/sparc/sparcdefs.h | 8 |
4 files changed, 31 insertions, 40 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) { diff --git a/src/devices/cpu/sparc/sparc.h b/src/devices/cpu/sparc/sparc.h index 5a3e1bd4c2d..f61ddb30e5e 100644 --- a/src/devices/cpu/sparc/sparc.h +++ b/src/devices/cpu/sparc/sparc.h @@ -26,15 +26,14 @@ public: template <typename T> void set_mmu(T &&tag) { m_mmu.set_tag(std::forward<T>(tag)); } // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; virtual void device_post_load() override; - virtual void device_resolve_objects() override; + virtual void device_resolve_objects() override ATTR_COLD; // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; @@ -296,8 +295,8 @@ public: protected: sparcv8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - virtual void device_start() override; - virtual void device_reset() override; + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; virtual bool execute_extra_group2(uint32_t op) override; virtual bool execute_extra_group3(uint32_t op) override; @@ -340,8 +339,8 @@ public: protected: // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; virtual void device_post_load() override; virtual bool execute_extra_group2(uint32_t op) override; @@ -398,14 +397,14 @@ protected: u32 dcache_data_r(offs_t offset, u32 mem_mask); void dcache_data_w(offs_t offset, u32 data, u32 mem_mask); - void control_map(address_map &map); - void icache_lock_map(address_map &map); - void dcache_lock_map(address_map &map); - template <uint8_t Asi> void mmu_map(address_map &map); - void icache_tag_map(address_map &map); - void icache_data_map(address_map &map); - void dcache_tag_map(address_map &map); - void dcache_data_map(address_map &map); + void control_map(address_map &map) ATTR_COLD; + void icache_lock_map(address_map &map) ATTR_COLD; + void dcache_lock_map(address_map &map) ATTR_COLD; + template <uint8_t Asi> void mmu_map(address_map &map) ATTR_COLD; + void icache_tag_map(address_map &map) ATTR_COLD; + void icache_data_map(address_map &map) ATTR_COLD; + void dcache_tag_map(address_map &map) ATTR_COLD; + void dcache_data_map(address_map &map) ATTR_COLD; void update_addr_masks(); void update_wait_states(); diff --git a/src/devices/cpu/sparc/sparcdasm.h b/src/devices/cpu/sparc/sparcdasm.h index 91a22df173a..b92a2c283a3 100644 --- a/src/devices/cpu/sparc/sparcdasm.h +++ b/src/devices/cpu/sparc/sparcdasm.h @@ -4,8 +4,8 @@ SPARC disassembler */ -#ifndef MAME_DEVICES_CPU_SPARC_SPARC_DASM_H -#define MAME_DEVICES_CPU_SPARC_SPARC_DASM_H +#ifndef MAME_CPU_SPARC_SPARCDASM_H +#define MAME_CPU_SPARC_SPARCDASM_H #pragma once @@ -255,4 +255,4 @@ private: vis_op_desc_map m_vis_op_desc; }; -#endif // MAME_DEVICES_CPU_SPARC_SPARC_DASM_H +#endif // MAME_CPU_SPARC_SPARCDASM_H diff --git a/src/devices/cpu/sparc/sparcdefs.h b/src/devices/cpu/sparc/sparcdefs.h index 66147c37780..19784b173a7 100644 --- a/src/devices/cpu/sparc/sparcdefs.h +++ b/src/devices/cpu/sparc/sparcdefs.h @@ -7,10 +7,10 @@ // //================================================================ -#pragma once +#ifndef MAME_CPU_SPARC_SPARCDEFS_H +#define MAME_CPU_SPARC_SPARCDEFS_H -#ifndef CPU_SPARC_SPARC_DEFS_H -#define CPU_SPARC_SPARC_DEFS_H +#pragma once #define PSR_CWP_MASK 0x0000001f #define PSR_ET_SHIFT 5 @@ -485,4 +485,4 @@ #define FPOP_FCMPED 0x056 #define FPOP_FCMPEX 0x057 -#endif // CPU_SPARC_SPARC_DEFS_H +#endif // MAME_CPU_SPARC_SPARCDEFS_H |