diff options
author | R. Belmont <rb6502@users.noreply.github.com> | 2011-08-25 02:31:31 +0000 |
---|---|---|
committer | R. Belmont <rb6502@users.noreply.github.com> | 2011-08-25 02:31:31 +0000 |
commit | 044df7903ef39c89d83b028d0672958ba706c957 (patch) | |
tree | ea7919b3d7574177917e272df62b0c0300814581 | |
parent | c3f0a5c6d3928059e328973fdfdfb9c4e46bee98 (diff) |
Add preliminary support for big-endian SH-3/SH-4 CPUs. [R. Belmont]
-rw-r--r-- | src/emu/cpu/sh4/sh4.c | 32 | ||||
-rw-r--r-- | src/emu/cpu/sh4/sh4.h | 6 | ||||
-rw-r--r-- | src/mame/drivers/alien.c | 2 | ||||
-rw-r--r-- | src/mame/drivers/aristmk6.c | 2 | ||||
-rw-r--r-- | src/mame/drivers/atvtrack.c | 4 | ||||
-rw-r--r-- | src/mame/drivers/cavesh3.c | 2 | ||||
-rw-r--r-- | src/mame/drivers/hikaru.c | 4 | ||||
-rw-r--r-- | src/mame/drivers/naomi.c | 2 |
8 files changed, 42 insertions, 12 deletions
diff --git a/src/emu/cpu/sh4/sh4.c b/src/emu/cpu/sh4/sh4.c index 0b6c6956c43..bf74d97941b 100644 --- a/src/emu/cpu/sh4/sh4.c +++ b/src/emu/cpu/sh4/sh4.c @@ -3818,7 +3818,35 @@ CPU_GET_INFO( sh3 ) } } -DEFINE_LEGACY_CPU_DEVICE(SH3, sh3); -DEFINE_LEGACY_CPU_DEVICE(SH4, sh4); +CPU_GET_INFO( sh3be ) +{ + switch (state) + { + /* --- the following bits of info are returned as pointers to data or functions --- */ + case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(sh3); break; + + /* --- the following bits of info are returned as NULL-terminated strings --- */ + case DEVINFO_STR_NAME: strcpy(info->s, "SH-3"); break; + case DEVINFO_STR_FAMILY: strcpy(info->s, "Hitachi SH7700"); break; + + case DEVINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break; + + default: CPU_GET_INFO_CALL(sh4); break; + } +} + +CPU_GET_INFO( sh4be ) +{ + switch (state) + { + case DEVINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break; + default: CPU_GET_INFO_CALL(sh4); break; + } +} + +DEFINE_LEGACY_CPU_DEVICE(SH3LE, sh3); +DEFINE_LEGACY_CPU_DEVICE(SH3BE, sh3be); +DEFINE_LEGACY_CPU_DEVICE(SH4LE, sh4); +DEFINE_LEGACY_CPU_DEVICE(SH4BE, sh4be); #endif // USE_SH4DRC diff --git a/src/emu/cpu/sh4/sh4.h b/src/emu/cpu/sh4/sh4.h index d5b211bc511..d49b7cf4c36 100644 --- a/src/emu/cpu/sh4/sh4.h +++ b/src/emu/cpu/sh4/sh4.h @@ -99,8 +99,10 @@ struct sh4_ddt_dma typedef void (*sh4_ftcsr_callback)(UINT32); -DECLARE_LEGACY_CPU_DEVICE(SH3, sh3); -DECLARE_LEGACY_CPU_DEVICE(SH4, sh4); +DECLARE_LEGACY_CPU_DEVICE(SH3LE, sh3); +DECLARE_LEGACY_CPU_DEVICE(SH3BE, sh3be); +DECLARE_LEGACY_CPU_DEVICE(SH4LE, sh4); +DECLARE_LEGACY_CPU_DEVICE(SH4BE, sh4be); WRITE32_HANDLER( sh4_internal_w ); READ32_HANDLER( sh4_internal_r ); diff --git a/src/mame/drivers/alien.c b/src/mame/drivers/alien.c index b83d863db52..fe5a969ed88 100644 --- a/src/mame/drivers/alien.c +++ b/src/mame/drivers/alien.c @@ -63,7 +63,7 @@ static MACHINE_RESET( alien ) static MACHINE_CONFIG_START( alien, alien_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", SH4, MASTER_CLOCK) /* 200MHz */ + MCFG_CPU_ADD("maincpu", SH4LE, MASTER_CLOCK) /* 200MHz */ MCFG_CPU_PROGRAM_MAP(alien_map) /* video hardware */ diff --git a/src/mame/drivers/aristmk6.c b/src/mame/drivers/aristmk6.c index 8d5c7336118..2aabff6f890 100644 --- a/src/mame/drivers/aristmk6.c +++ b/src/mame/drivers/aristmk6.c @@ -127,7 +127,7 @@ static const struct sh4_config sh4cpu_config = { 1, 0, 1, 0, 0, 0, 1, 1, static MACHINE_CONFIG_START( aristmk6, aristmk6_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", SH4, ARISTMK6_CPU_CLOCK) + MCFG_CPU_ADD("maincpu", SH4LE, ARISTMK6_CPU_CLOCK) MCFG_CPU_CONFIG(sh4cpu_config) MCFG_CPU_PROGRAM_MAP(aristmk6_map) MCFG_CPU_IO_MAP(aristmk6_port) diff --git a/src/mame/drivers/atvtrack.c b/src/mame/drivers/atvtrack.c index c7f15b63496..23b167c15dd 100644 --- a/src/mame/drivers/atvtrack.c +++ b/src/mame/drivers/atvtrack.c @@ -374,12 +374,12 @@ static const struct sh4_config sh4cpu_config = { 1, 0, 1, 0, 0, 0, 1, 1, static MACHINE_CONFIG_START( atvtrack, atvtrack_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", SH4, ATV_CPU_CLOCK) + MCFG_CPU_ADD("maincpu", SH4LE, ATV_CPU_CLOCK) MCFG_CPU_CONFIG(sh4cpu_config) MCFG_CPU_PROGRAM_MAP(atvtrack_main_map) MCFG_CPU_IO_MAP(atvtrack_main_port) - MCFG_CPU_ADD("subcpu", SH4, ATV_CPU_CLOCK) + MCFG_CPU_ADD("subcpu", SH4LE, ATV_CPU_CLOCK) MCFG_CPU_CONFIG(sh4cpu_config) MCFG_CPU_PROGRAM_MAP(atvtrack_sub_map) MCFG_CPU_IO_MAP(atvtrack_sub_port) diff --git a/src/mame/drivers/cavesh3.c b/src/mame/drivers/cavesh3.c index 2c83d06ad41..7bc2046ceac 100644 --- a/src/mame/drivers/cavesh3.c +++ b/src/mame/drivers/cavesh3.c @@ -43,7 +43,7 @@ static const struct sh4_config sh4cpu_config = { 1, 0, 1, 0, 0, 0, 1, 1, static MACHINE_CONFIG_START( cavesh3, cavesh3_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", SH3, CAVE_CPU_CLOCK) + MCFG_CPU_ADD("maincpu", SH3LE, CAVE_CPU_CLOCK) MCFG_CPU_CONFIG(sh4cpu_config) MCFG_CPU_PROGRAM_MAP(cavesh3_map) MCFG_CPU_IO_MAP(cavesh3_port) diff --git a/src/mame/drivers/hikaru.c b/src/mame/drivers/hikaru.c index 53be4a6788e..f11643a5096 100644 --- a/src/mame/drivers/hikaru.c +++ b/src/mame/drivers/hikaru.c @@ -412,12 +412,12 @@ ADDRESS_MAP_END static MACHINE_CONFIG_START( hikaru, driver_device ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", SH4, CPU_CLOCK) + MCFG_CPU_ADD("maincpu", SH4LE, CPU_CLOCK) // MCFG_CPU_CONFIG(sh4cpu_config) MCFG_CPU_PROGRAM_MAP(hikaru_map) // MCFG_CPU_IO_MAP(hikaru_port) // MCFG_CPU_VBLANK_INT("screen", hikaru,vblank) - MCFG_CPU_ADD("slave", SH4, CPU_CLOCK) + MCFG_CPU_ADD("slave", SH4LE, CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(hikaru_map_slave) // MCFG_MACHINE_START( hikaru ) diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c index 947541dbc97..48087ae159b 100644 --- a/src/mame/drivers/naomi.c +++ b/src/mame/drivers/naomi.c @@ -2489,7 +2489,7 @@ static MACHINE_RESET( naomi ) static MACHINE_CONFIG_START( naomi_aw_base, driver_device ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", SH4, CPU_CLOCK) // SH4!!! + MCFG_CPU_ADD("maincpu", SH4LE, CPU_CLOCK) // SH4!!! MCFG_CPU_CONFIG(sh4cpu_config) MCFG_CPU_PROGRAM_MAP(naomi_map) MCFG_CPU_IO_MAP(naomi_port) |