Commit Graph

9 Commits

Author SHA1 Message Date
joerg
81895b4b5d 0:0 is the adress x86emu_call pushes on the stack, so check for it here
explicitly to stop processing again. As this is the start of the IDT,
normal code is not likely to override it.
2009-02-03 19:26:29 +00:00
joerg
89b1aba64b Fix three bugs in the instruction decoder:
(1) Mode 5 for SIB uses EBP as base, not ESP.
(2) RM register mode 5 needs a segment override for SS when not using an
    immediate in 32bit mode.
(3) Same for mode 6 in 16bit mode.

From anon ymous.
2009-02-03 19:14:52 +00:00
joerg
fd06786f0c Raise correct interrupt on division errors. 2008-10-27 00:20:22 +00:00
jmcneill
48e69717fb Emulate cpuid instruction. 2008-10-25 19:01:18 +00:00
joerg
45f2572a92 Add virtual i8254 for x86emu. 2007-12-21 17:45:50 +00:00
joerg
823959a6b2 Refactor interrupt dispatching. 2007-12-13 16:41:59 +00:00
joerg
e982f87297 Expect that src/common/include is in include path and use x86emu/* for
the includes.
2007-12-04 17:32:22 +00:00
joerg
00487473b9 Move x86emu's include files to src/common/include/x86emu. 2007-12-01 20:14:09 +00:00
joerg
22ac6fc0fb Add x86emu for in-kernel use. This is a 386 real mode emulator that can
be used to run ROM code inside the kernel without having to setup vm86
and without having a x86 CPU at hand.

This code was originally written by SciTech and released under MIT/X11
license for XFree86. It has been refactored be less than half of the
original size, the compiled code being around a third of the former
size. The interface was changed to be a real library, e.g. no global
variables are used.
2007-11-30 20:02:49 +00:00