diff options
Diffstat (limited to 'src/devices/cpu/tms32082')
-rw-r--r-- | src/devices/cpu/tms32082/mp_ops.cpp | 54 | ||||
-rw-r--r-- | src/devices/cpu/tms32082/tms32082.cpp | 50 | ||||
-rw-r--r-- | src/devices/cpu/tms32082/tms32082.h | 8 |
3 files changed, 56 insertions, 56 deletions
diff --git a/src/devices/cpu/tms32082/mp_ops.cpp b/src/devices/cpu/tms32082/mp_ops.cpp index 0411e6996b6..cbae99b9d81 100644 --- a/src/devices/cpu/tms32082/mp_ops.cpp +++ b/src/devices/cpu/tms32082/mp_ops.cpp @@ -142,38 +142,38 @@ void tms32082_mp_device::vector_loadstore() { case 0x01: // vst.s { - m_program->write_dword(m_outp, m_reg[rd]); + m_program.write_dword(m_outp, m_reg[rd]); m_outp += 4; break; } case 0x03: // vst.d { uint64_t data = m_fpair[rd >> 1]; - m_program->write_qword(m_outp, data); + m_program.write_qword(m_outp, data); m_outp += 8; break; } case 0x04: // vld0.s { - m_reg[rd] = m_program->read_dword(m_in0p); + m_reg[rd] = m_program.read_dword(m_in0p); m_in0p += 4; break; } case 0x05: // vld1.s { - m_reg[rd] = m_program->read_dword(m_in1p); + m_reg[rd] = m_program.read_dword(m_in1p); m_in1p += 4; break; } case 0x06: // vld0.d { - m_fpair[rd >> 1] = m_program->read_qword(m_in0p); + m_fpair[rd >> 1] = m_program.read_qword(m_in0p); m_in0p += 8; break; } case 0x07: // vld1.d { - m_fpair[rd >> 1] = m_program->read_qword(m_in1p); + m_fpair[rd >> 1] = m_program.read_qword(m_in1p); m_in1p += 8; break; } @@ -518,7 +518,7 @@ void tms32082_mp_device::execute_short_imm() int32_t offset = OP_SIMM15(); uint32_t address = m_reg[base] + offset; - uint32_t data = (uint8_t)m_program->read_byte(address); + uint32_t data = (uint8_t)m_program.read_byte(address); if (data & 0x80) data |= 0xffffff00; if (rd) m_reg[rd] = data; @@ -537,7 +537,7 @@ void tms32082_mp_device::execute_short_imm() int32_t offset = OP_SIMM15(); uint32_t address = m_reg[base] + offset; - uint32_t data = (uint16_t)m_program->read_word(address); + uint32_t data = (uint16_t)m_program.read_word(address); if (data & 0x8000) data |= 0xffff0000; if (rd) m_reg[rd] = data; @@ -556,7 +556,7 @@ void tms32082_mp_device::execute_short_imm() int32_t offset = OP_SIMM15(); uint32_t address = m_reg[base] + offset; - uint32_t data = m_program->read_dword(address); + uint32_t data = m_program.read_dword(address); if (rd) m_reg[rd] = data; @@ -574,8 +574,8 @@ void tms32082_mp_device::execute_short_imm() int32_t offset = OP_SIMM15(); uint32_t address = m_reg[base] + offset; - uint32_t data1 = m_program->read_dword(address); - uint32_t data2 = m_program->read_dword(address+4); + uint32_t data1 = m_program.read_dword(address); + uint32_t data2 = m_program.read_dword(address+4); if (rd) { m_reg[(rd & ~1)+1] = data1; @@ -596,7 +596,7 @@ void tms32082_mp_device::execute_short_imm() int32_t offset = OP_SIMM15(); uint32_t address = m_reg[base] + offset; - uint32_t data = (uint8_t)(m_program->read_byte(address)); + uint32_t data = (uint8_t)(m_program.read_byte(address)); if (rd) m_reg[rd] = data; @@ -614,7 +614,7 @@ void tms32082_mp_device::execute_short_imm() int32_t offset = OP_SIMM15(); uint32_t address = m_reg[base] + offset; - uint32_t data = (uint16_t)(m_program->read_word(address)); + uint32_t data = (uint16_t)(m_program.read_word(address)); if (rd) m_reg[rd] = data; @@ -633,7 +633,7 @@ void tms32082_mp_device::execute_short_imm() uint32_t address = m_reg[base] + offset; - m_program->write_byte(address, (uint8_t)(m_reg[rd])); + m_program.write_byte(address, (uint8_t)(m_reg[rd])); if (m && base) m_reg[base] = address; @@ -650,7 +650,7 @@ void tms32082_mp_device::execute_short_imm() uint32_t address = m_reg[base] + offset; - m_program->write_word(address, (uint16_t)(m_reg[rd])); + m_program.write_word(address, (uint16_t)(m_reg[rd])); if (m && base) m_reg[base] = address; @@ -667,7 +667,7 @@ void tms32082_mp_device::execute_short_imm() uint32_t address = m_reg[base] + offset; - m_program->write_dword(address, m_reg[rd]); + m_program.write_dword(address, m_reg[rd]); if (m && base) m_reg[base] = address; @@ -684,8 +684,8 @@ void tms32082_mp_device::execute_short_imm() uint32_t address = m_reg[base] + offset; - m_program->write_dword(address+0, m_reg[(rd & ~1) + 1]); - m_program->write_dword(address+4, m_reg[rd & ~1]); + m_program.write_dword(address+0, m_reg[(rd & ~1) + 1]); + m_program.write_dword(address+4, m_reg[rd & ~1]); if (m && base) m_reg[base] = address; @@ -1043,7 +1043,7 @@ void tms32082_mp_device::execute_reg_long_imm() int rd = OP_RD(); uint32_t address = m_reg[base] + (has_imm ? imm32 : m_reg[OP_SRC1()]); - uint32_t r = m_program->read_byte(address); + uint32_t r = m_program.read_byte(address); if (r & 0x80) r |= 0xffffff00; if (rd) @@ -1066,7 +1066,7 @@ void tms32082_mp_device::execute_reg_long_imm() int rd = OP_RD(); uint32_t address = m_reg[base] + ((has_imm ? imm32 : m_reg[OP_SRC1()]) << shift); - uint32_t r = m_program->read_word(address); + uint32_t r = m_program.read_word(address); if (r & 0x8000) r |= 0xffff0000; if (rd) @@ -1088,7 +1088,7 @@ void tms32082_mp_device::execute_reg_long_imm() int rd = OP_RD(); uint32_t address = m_reg[base] + ((has_imm ? imm32 : m_reg[OP_SRC1()]) << shift); - uint32_t r = m_program->read_dword(address); + uint32_t r = m_program.read_dword(address); if (rd) m_reg[rd] = r; @@ -1109,7 +1109,7 @@ void tms32082_mp_device::execute_reg_long_imm() int rd = OP_RD(); uint32_t address = m_reg[base] + ((has_imm ? imm32 : m_reg[OP_SRC1()]) << shift); - uint64_t r = m_program->read_qword(address); + uint64_t r = m_program.read_qword(address); if (rd) m_fpair[rd >> 1] = r; @@ -1129,7 +1129,7 @@ void tms32082_mp_device::execute_reg_long_imm() int rd = OP_RD(); uint32_t address = m_reg[base] + (has_imm ? imm32 : m_reg[OP_SRC1()]); - uint32_t r = (uint8_t)(m_program->read_byte(address)); + uint32_t r = (uint8_t)(m_program.read_byte(address)); if (rd) m_reg[rd] = r; @@ -1150,7 +1150,7 @@ void tms32082_mp_device::execute_reg_long_imm() int rd = OP_RD(); uint32_t address = m_reg[base] + ((has_imm ? imm32 : m_reg[OP_SRC1()]) << shift); - uint32_t r = (uint16_t)(m_program->read_word(address)); + uint32_t r = (uint16_t)(m_program.read_word(address)); if (rd) m_reg[rd] = r; @@ -1170,7 +1170,7 @@ void tms32082_mp_device::execute_reg_long_imm() int base = OP_BASE(); uint32_t address = m_reg[base] + (has_imm ? imm32 : m_reg[OP_SRC1()]); - m_program->write_byte(address, (uint8_t)(m_reg[OP_RD()])); + m_program.write_byte(address, (uint8_t)(m_reg[OP_RD()])); if (m && base) m_reg[base] = address; @@ -1188,7 +1188,7 @@ void tms32082_mp_device::execute_reg_long_imm() int base = OP_BASE(); uint32_t address = m_reg[base] + ((has_imm ? imm32 : m_reg[OP_SRC1()]) << shift); - m_program->write_word(address, (uint16_t)(m_reg[OP_RD()])); + m_program.write_word(address, (uint16_t)(m_reg[OP_RD()])); if (m && base) m_reg[base] = address; @@ -1206,7 +1206,7 @@ void tms32082_mp_device::execute_reg_long_imm() int base = OP_BASE(); uint32_t address = m_reg[base] + ((has_imm ? imm32 : m_reg[OP_SRC1()]) << shift); - m_program->write_dword(address, m_reg[OP_RD()]); + m_program.write_dword(address, m_reg[OP_RD()]); if (m && base) m_reg[base] = address; diff --git a/src/devices/cpu/tms32082/tms32082.cpp b/src/devices/cpu/tms32082/tms32082.cpp index a14bf89c346..9df37455e99 100644 --- a/src/devices/cpu/tms32082/tms32082.cpp +++ b/src/devices/cpu/tms32082/tms32082.cpp @@ -90,20 +90,20 @@ WRITE32_MEMBER(tms32082_mp_device::mp_param_w) // TODO: move TC functionality to separate device uint32_t address = data; - uint32_t next_entry = m_program->read_dword(address + 0); - uint32_t pt_options = m_program->read_dword(address + 4); - uint32_t src_addr = m_program->read_dword(address + 8); - uint32_t dst_addr = m_program->read_dword(address + 12); - uint32_t src_b_count = m_program->read_word(address + 16); - uint32_t src_a_count = m_program->read_word(address + 18); - uint32_t dst_b_count = m_program->read_word(address + 20); - uint32_t dst_a_count = m_program->read_word(address + 22); - uint32_t src_c_count = m_program->read_dword(address + 24); - uint32_t dst_c_count = m_program->read_dword(address + 28); - uint32_t src_b_pitch = m_program->read_dword(address + 32); - uint32_t dst_b_pitch = m_program->read_dword(address + 36); - uint32_t src_c_pitch = m_program->read_dword(address + 40); - uint32_t dst_c_pitch = m_program->read_dword(address + 44); + uint32_t next_entry = m_program.read_dword(address + 0); + uint32_t pt_options = m_program.read_dword(address + 4); + uint32_t src_addr = m_program.read_dword(address + 8); + uint32_t dst_addr = m_program.read_dword(address + 12); + uint32_t src_b_count = m_program.read_word(address + 16); + uint32_t src_a_count = m_program.read_word(address + 18); + uint32_t dst_b_count = m_program.read_word(address + 20); + uint32_t dst_a_count = m_program.read_word(address + 22); + uint32_t src_c_count = m_program.read_dword(address + 24); + uint32_t dst_c_count = m_program.read_dword(address + 28); + uint32_t src_b_pitch = m_program.read_dword(address + 32); + uint32_t dst_b_pitch = m_program.read_dword(address + 36); + uint32_t src_c_pitch = m_program.read_dword(address + 40); + uint32_t dst_c_pitch = m_program.read_dword(address + 44); printf("TC operation:\n"); printf(" Next entry: %08X\n", next_entry); @@ -137,8 +137,8 @@ WRITE32_MEMBER(tms32082_mp_device::mp_param_w) uint32_t src = src_addr + c_src_offset + b_src_offset + ia; uint32_t dst = dst_addr + c_dst_offset + b_dst_offset + ia; - uint32_t data = m_program->read_byte(src); - m_program->write_byte(dst, data); + uint32_t data = m_program.read_byte(src); + m_program.write_byte(dst, data); //printf("%08X: %02X -> %08X\n", src, data, dst); } @@ -151,7 +151,7 @@ WRITE32_MEMBER(tms32082_mp_device::mp_param_w) void tms32082_mp_device::device_start() { - m_program = &space(AS_PROGRAM); + space(AS_PROGRAM).specific(m_program); m_cmd_callback.resolve(); save_item(NAME(m_pc)); @@ -218,8 +218,8 @@ void tms32082_mp_device::device_start() state_add(STATE_GENPC, "GENPC", m_pc).noshow(); state_add(STATE_GENPCBASE, "CURPC", m_pc).noshow(); - m_program = &space(AS_PROGRAM); - m_cache = m_program->cache<2, 0, ENDIANNESS_BIG>(); + space(AS_PROGRAM).cache(m_cache); + space(AS_PROGRAM).specific(m_program); set_icountptr(m_icount); } @@ -294,7 +294,7 @@ void tms32082_mp_device::processor_command(uint32_t command) printf("PP0 "); if (!m_cmd_callback.isnull()) - m_cmd_callback(*m_program, 0, command, 0xffffffff); + m_cmd_callback(space(AS_PROGRAM), 0, command, 0xffffffff); printf("\n"); } @@ -403,7 +403,7 @@ void tms32082_mp_device::check_interrupts() m_ie &= ~1; // clear global interrupt mask // get new pc from vector table - m_fetchpc = m_pc = m_program->read_dword(0x01010180 + (i * 4)); + m_fetchpc = m_pc = m_program.read_dword(0x01010180 + (i * 4)); return; } } @@ -436,7 +436,7 @@ void tms32082_mp_device::execute_set_input(int inputnum, int state) uint32_t tms32082_mp_device::fetch() { - uint32_t w = m_cache->read_dword(m_fetchpc); + uint32_t w = m_cache.read_dword(m_fetchpc); m_fetchpc += 4; return w; } @@ -506,7 +506,7 @@ std::unique_ptr<util::disasm_interface> tms32082_pp_device::create_disassembler( void tms32082_pp_device::device_start() { - m_program = &space(AS_PROGRAM); + space(AS_PROGRAM).specific(m_program); save_item(NAME(m_pc)); save_item(NAME(m_fetchpc)); @@ -517,8 +517,8 @@ void tms32082_pp_device::device_start() state_add(STATE_GENPC, "GENPC", m_pc).noshow(); state_add(STATE_GENPCBASE, "CURPC", m_pc).noshow(); - m_program = &space(AS_PROGRAM); - m_cache = m_program->cache<2, 0, ENDIANNESS_BIG>(); + space(AS_PROGRAM).cache(m_cache); + space(AS_PROGRAM).specific(m_program); set_icountptr(m_icount); } diff --git a/src/devices/cpu/tms32082/tms32082.h b/src/devices/cpu/tms32082/tms32082.h index e571255192d..ae68967fba4 100644 --- a/src/devices/cpu/tms32082/tms32082.h +++ b/src/devices/cpu/tms32082/tms32082.h @@ -129,8 +129,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; write32_delegate m_cmd_callback; @@ -189,8 +189,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; }; |