https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d55276aad9496fe820b017f272c73b6bf53220a3

commit d55276aad9496fe820b017f272c73b6bf53220a3
Author:     Jérôme Gardou <[email protected]>
AuthorDate: Mon Apr 12 14:16:49 2021 +0200
Commit:     Jérôme Gardou <[email protected]>
CommitDate: Wed Apr 28 13:10:23 2021 +0200

    [FREELDR] Save used register when calling PNPBIOS
---
 boot/freeldr/freeldr/arch/amd64/pnpbios.S | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/boot/freeldr/freeldr/arch/amd64/pnpbios.S 
b/boot/freeldr/freeldr/arch/amd64/pnpbios.S
index f97a9d8fb05..8dd44e933ca 100644
--- a/boot/freeldr/freeldr/arch/amd64/pnpbios.S
+++ b/boot/freeldr/freeldr/arch/amd64/pnpbios.S
@@ -104,7 +104,8 @@ pnp_not_found:
 PUBLIC PnpBiosGetDeviceNodeCount
 PnpBiosGetDeviceNodeCount:
 
-    /* Save param-regs */
+    /* Save registers */
+    push rbx
     push rcx
     push rdx
 
@@ -115,6 +116,7 @@ PnpBiosGetDeviceNodeCount:
     /* Restore param-regs */
     pop rdx
     pop rcx
+    pop rbx
 
     xor eax, eax
     mov ax, [BSS_PnpNodeSize]
@@ -148,14 +150,16 @@ PnpBiosGetDeviceNode:
     and eax, HEX(0f)
     mov word ptr [BSS_PnpBiosBufferOffset], ax
 
-    /* Save rcx */
+    /* Save registers */
     push rcx
+    push rbx
 
     /* Call the real mode function */
     mov bx, FNID_PnpBiosGetDeviceNode
     call CallRealMode
 
-    /* Restore rcx */
+    /* Restore registers */
+    pop rbx
     pop rcx
 
     /* update node number */

Reply via email to