summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/tms32082/tms32082.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/tms32082/tms32082.h')
-rw-r--r--src/devices/cpu/tms32082/tms32082.h42
1 files changed, 21 insertions, 21 deletions
diff --git a/src/devices/cpu/tms32082/tms32082.h b/src/devices/cpu/tms32082/tms32082.h
index d281ac0eb78..7a66698d9d6 100644
--- a/src/devices/cpu/tms32082/tms32082.h
+++ b/src/devices/cpu/tms32082/tms32082.h
@@ -68,22 +68,20 @@ public:
INPUT_X4 = 4
};
- DECLARE_READ32_MEMBER(mp_param_r);
- DECLARE_WRITE32_MEMBER(mp_param_w);
+ uint32_t mp_param_r(offs_t offset, uint32_t mem_mask = ~0);
+ void mp_param_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
- void set_command_callback(write32_delegate callback);
+ template <typename... T> void set_command_callback(T &&... args) { m_cmd_callback.set(std::forward<T>(args)...); }
-
- void mp_internal_map(address_map &map);
+ void mp_internal_map(address_map &map) ATTR_COLD;
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;
// device_execute_interface overrides
- virtual uint32_t execute_min_cycles() const override { return 1; }
- virtual uint32_t execute_max_cycles() const override { return 1; }
- virtual uint32_t execute_input_lines() const override { return 0; }
+ virtual uint32_t execute_min_cycles() const noexcept override { return 1; }
+ virtual uint32_t execute_max_cycles() const noexcept override { return 1; }
virtual void execute_run() override;
virtual void execute_set_input(int inputnum, int state) override;
@@ -130,10 +128,12 @@ protected:
int m_icount;
- address_space *m_program;
- memory_access_cache<2, 0, ENDIANNESS_BIG> * m_cache;
+ memory_access<32, 2, 0, ENDIANNESS_BIG>::cache m_cache;
+ memory_access<32, 2, 0, ENDIANNESS_BIG>::specific m_program;
+
+ write32mo_delegate m_cmd_callback;
- write32_delegate m_cmd_callback;
+ uint32_t m_pp_status;
void check_interrupts();
void processor_command(uint32_t command);
@@ -147,6 +147,7 @@ protected:
bool test_condition(int condition, uint32_t value);
uint32_t calculate_cmp(uint32_t src1, uint32_t src2);
void vector_loadstore();
+ void tc_command_execute(int channel, uint32_t entrypoint);
};
@@ -162,16 +163,15 @@ public:
PP_PC = 1
};
- void pp_internal_map(address_map &map);
+ void pp_internal_map(address_map &map) ATTR_COLD;
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;
// device_execute_interface overrides
- virtual uint32_t execute_min_cycles() const override { return 1; }
- virtual uint32_t execute_max_cycles() const override { return 1; }
- virtual uint32_t execute_input_lines() const override { return 0; }
+ virtual uint32_t execute_min_cycles() const noexcept override { return 1; }
+ virtual uint32_t execute_max_cycles() const noexcept override { return 1; }
virtual void execute_run() override;
// device_memory_interface overrides
@@ -190,8 +190,8 @@ protected:
int m_icount;
- address_space *m_program;
- memory_access_cache<2, 0, ENDIANNESS_BIG> * m_cache;
+ memory_access<32, 2, 0, ENDIANNESS_BIG>::cache m_cache;
+ memory_access<32, 2, 0, ENDIANNESS_BIG>::specific m_program;
};