[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tyndur-devel] [PATCH v2 1/3] kernel2: vm86: ip nach Zwei-Byte-Instruktionen gefixt



! kernel2: Der Instruktionsemulator hat ip immer nur um ein Byte
  hochgezählt, auch wenn die Instruktion in Wirklichkeit zwei Bytes hat.
  Das ist natürlich falsch.

Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
 src/kernel2/src/arch/i386/vm86.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/kernel2/src/arch/i386/vm86.c b/src/kernel2/src/arch/i386/vm86.c
index 5686667..566f2af 100644
--- a/src/kernel2/src/arch/i386/vm86.c
+++ b/src/kernel2/src/arch/i386/vm86.c
@@ -389,7 +389,7 @@ int vm86_exception(interrupt_stack_frame_t* isf)
 
         case 0x66ed: /* inl eax, dx */
             isf->eax = inl(isf->edx);
-            isf->eip++;
+            isf->eip += 2;
             break;
 
         case 0xee: /* outb dx, al */
@@ -404,7 +404,7 @@ int vm86_exception(interrupt_stack_frame_t* isf)
 
         case 0x66ef: /* outl dx, eax */
             outl(isf->edx, isf->eax);
-            isf->eip++;
+            isf->eip += 2;
             break;
 
         case 0xfa: /* cli */
-- 
2.1.4