render / rpms / qemu

Forked from rpms/qemu 10 months ago
Clone
Mark McLoughlin ccf76b
diff --git a/kvm/bios/rombios.c b/kvm/bios/rombios.c
Glauber Costa 3afbf0
index c4f6ccd..c4bfe60 100644
Mark McLoughlin ccf76b
--- a/kvm/bios/rombios.c
Mark McLoughlin ccf76b
+++ b/kvm/bios/rombios.c
Glauber Costa 3afbf0
@@ -10196,22 +10196,43 @@ no_serial:
Glauber Costa 3afbf0
   ret
Glauber Costa 3afbf0
 
Glauber Costa 3afbf0
 rom_checksum:
Glauber Costa 3afbf0
-  push ax
Glauber Costa 3afbf0
-  push bx
Glauber Costa 3afbf0
-  push cx
Glauber Costa 3afbf0
+  pusha
Glauber Costa 3afbf0
+  push ds
Glauber Costa 3afbf0
+
Glauber Costa 3afbf0
   xor  ax, ax
Glauber Costa 3afbf0
   xor  bx, bx
Glauber Costa 3afbf0
   xor  cx, cx
Glauber Costa 3afbf0
+  xor  dx, dx
Glauber Costa 3afbf0
+
Glauber Costa 3afbf0
   mov  ch, [2]
Glauber Costa 3afbf0
   shl  cx, #1
Glauber Costa 3afbf0
+
Glauber Costa 3afbf0
+  jnc checksum_loop
Glauber Costa 3afbf0
+  xchg dx, cx
Glauber Costa 3afbf0
+  dec  cx
Glauber Costa 3afbf0
+
Glauber Costa 3afbf0
 checksum_loop:
Glauber Costa 3afbf0
   add  al, [bx]
Glauber Costa 3afbf0
   inc  bx
Glauber Costa 3afbf0
   loop checksum_loop
Glauber Costa 3afbf0
+
Glauber Costa 3afbf0
+  test dx, dx 
Glauber Costa 3afbf0
+  je checksum_out
Glauber Costa 3afbf0
+
Glauber Costa 3afbf0
+  add  al, [bx]
Glauber Costa 3afbf0
+  mov  cx, dx
Glauber Costa 3afbf0
+  mov  dx, ds
Glauber Costa 3afbf0
+  add  dh, #0x10
Glauber Costa 3afbf0
+  mov  ds, dx
Glauber Costa 3afbf0
+  xor  dx, dx 
Glauber Costa 3afbf0
+  xor  bx, bx
Glauber Costa 3afbf0
+
Glauber Costa 3afbf0
+  jmp  checksum_loop
Glauber Costa 3afbf0
+
Glauber Costa 3afbf0
+checksum_out:
Glauber Costa 3afbf0
   and  al, #0xff
Glauber Costa 3afbf0
-  pop  cx
Glauber Costa 3afbf0
-  pop  bx
Glauber Costa 3afbf0
-  pop  ax
Glauber Costa 3afbf0
+  pop  ds
Glauber Costa 3afbf0
+  popa 
Glauber Costa 3afbf0
   ret