summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2017-08-01 00:52:21 -0400
committer AJR <ajrhacker@users.noreply.github.com>2017-08-01 00:55:59 -0400
commitac06279df07200af923258c22c6f1c957a2bc5a7 (patch)
treef7aa51325d4219e065de899dc25f66f629ed4ced
parent01decf78b0d80f969c2c868e9df8f9c87f23dc8b (diff)
Create explicit i386dasm include for x86 DRC (nw)
-rw-r--r--scripts/src/cpu.lua3
-rw-r--r--src/devices/cpu/i386/i386dasm.h5
-rw-r--r--src/devices/cpu/i386/i386priv.h3
-rw-r--r--src/devices/cpu/i86/i86.cpp2
-rw-r--r--src/devices/cpu/x86log.cpp2
5 files changed, 10 insertions, 5 deletions
diff --git a/scripts/src/cpu.lua b/scripts/src/cpu.lua
index 094da8e8d84..7aa5963f9fd 100644
--- a/scripts/src/cpu.lua
+++ b/scripts/src/cpu.lua
@@ -930,7 +930,7 @@ if (CPUS["MCS96"]~=null) then
end
--------------------------------------------------
--- Intel 80x86 series
+-- Intel 80x86 series (also a dynamic recompiler target)
--@src/devices/cpu/i86/i86.h,CPUS["I86"] = true
--@src/devices/cpu/i86/i286.h,CPUS["I86"] = true
--@src/devices/cpu/i386/i386.h,CPUS["I386"] = true
@@ -950,6 +950,7 @@ end
if (CPUS["SH2"]~=null or CPUS["MIPS"]~=null or CPUS["POWERPC"]~=null or CPUS["RSP"]~=null or CPUS["ARM7"]~=null or CPUS["ADSP21062"]~=null or CPUS["MB86235"]~=null or CPUS["I86"]~=null or CPUS["I386"]~=null or _OPTIONS["with-tools"]) then
table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/i386/i386dasm.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/i386/i386dasm.h")
end
if (CPUS["I386"]~=null) then
diff --git a/src/devices/cpu/i386/i386dasm.h b/src/devices/cpu/i386/i386dasm.h
new file mode 100644
index 00000000000..42142bee675
--- /dev/null
+++ b/src/devices/cpu/i386/i386dasm.h
@@ -0,0 +1,5 @@
+// license:BSD-3-Clause
+// copyright-holders:Ville Linde, Peter Ferrie
+
+extern int i386_dasm_one(std::ostream &stream, uint32_t pc, const uint8_t *oprom, int mode);
+extern int i386_dasm_one_ex(std::ostream &stream, uint64_t eip, const uint8_t *oprom, int mode);
diff --git a/src/devices/cpu/i386/i386priv.h b/src/devices/cpu/i386/i386priv.h
index 24df4b5f4fb..452af3eb16c 100644
--- a/src/devices/cpu/i386/i386priv.h
+++ b/src/devices/cpu/i386/i386priv.h
@@ -6,6 +6,7 @@
#define __I386_H__
#include "i386.h"
+#include "i386dasm.h"
//#define DEBUG_MISSING_OPCODE
@@ -15,8 +16,6 @@
#define MMXOP(XX) mmx_##XX
#define SSEOP(XX) sse_##XX
-extern int i386_dasm_one(std::ostream &stream, uint32_t pc, const uint8_t *oprom, int mode);
-
enum SREGS { ES, CS, SS, DS, FS, GS };
enum BREGS
diff --git a/src/devices/cpu/i86/i86.cpp b/src/devices/cpu/i86/i86.cpp
index d1fa1eb7f04..7185034df9a 100644
--- a/src/devices/cpu/i86/i86.cpp
+++ b/src/devices/cpu/i86/i86.cpp
@@ -15,6 +15,7 @@
#include "i86.h"
#include "debugger.h"
#include "i86inline.h"
+#include "cpu/i386/i386dasm.h"
#define I8086_NMI_INT_VECTOR 2
@@ -551,7 +552,6 @@ void i8086_common_cpu_device::execute_set_input( int inptnum, int state )
offs_t i8086_common_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
{
- extern int i386_dasm_one(std::ostream &stream, offs_t eip, const uint8_t *oprom, int mode);
return i386_dasm_one(stream, pc, oprom, 1);
}
diff --git a/src/devices/cpu/x86log.cpp b/src/devices/cpu/x86log.cpp
index 07b1bccb7eb..03552877128 100644
--- a/src/devices/cpu/x86log.cpp
+++ b/src/devices/cpu/x86log.cpp
@@ -12,6 +12,7 @@
#include <cassert>
#include "emu.h"
#include "x86log.h"
+#include "cpu/i386/i386dasm.h"
@@ -20,7 +21,6 @@
***************************************************************************/
static void reset_log(x86log_context *log) noexcept;
-extern int i386_dasm_one_ex(std::ostream &stream, uint64_t eip, const uint8_t *oprom, int mode);