Fix emulation bug with self-modifying code
commit401fdf45fc49bac795fd69b7981433720046dea7
authorAlex Smith <ais523@bham.ac.uk>
Mon, 28 Jun 2010 03:31:57 +0000 (28 04:31 +0100)
committerIlari Liusvaara <ilari.liusvaara@elisanet.fi>
Thu, 1 Jul 2010 18:15:41 +0000 (1 21:15 +0300)
tree3ebcf629b0b8eeb7fa0095d9c73e2d62b08710ca
parentef451286cfbda00deb1c6d6274312e9e4420d01b
Fix emulation bug with self-modifying code

This patch adds an option FLUSHONMODIFY (defaulting to true for newly assembled
recordings) that causes the emulator to automatically invalidate caches of code
that modifies itself, even while running. This is necessary to get calls to
__int86 under DJGPP to emulate correctly, among other things; note that the
pipelining behaviour might not be exactly the same as on all models of x86
chips, though.
Changelog.utf8
org/jpc/emulator/PC.java
org/jpc/emulator/memory/LazyCodeBlockMemory.java
org/jpc/emulator/memory/codeblock/CodeBlock.java
org/jpc/emulator/memory/codeblock/SpanningCodeBlock.java
org/jpc/emulator/memory/codeblock/optimised/ProtectedModeUBlock.java
org/jpc/emulator/memory/codeblock/optimised/RealModeUBlock.java
org/jpc/emulator/memory/codeblock/optimised/Virtual8086ModeUBlock.java
org/jpc/emulator/processor/Processor.java
org/jpc/emulator/processor/ProcessorException.java
org/jpc/pluginsaux/PCConfigDialog.java