mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
[NTOS]: KiDispatchInterrupt crushes EBX, so maybe it should preserve it first? This only worked because KiDispatchInterrupt was only called by ASM code that already was magically aware of this fact, and preserved (or didn't use) EBX before making the call. Yuck!
svn path=/trunk/; revision=45212
This commit is contained in:
@@ -320,6 +320,9 @@ _KeUpdateSystemTime@0:
|
||||
.func KiDispatchInterrupt@0
|
||||
_KiDispatchInterrupt@0:
|
||||
|
||||
/* Preserve EBX */
|
||||
push ebx
|
||||
|
||||
/* Get the PCR and disable interrupts */
|
||||
mov ebx, PCR[KPCR_SELF]
|
||||
cli
|
||||
@@ -418,12 +421,14 @@ GetNext:
|
||||
|
||||
Return:
|
||||
/* All done */
|
||||
pop ebx
|
||||
ret
|
||||
|
||||
QuantumEnd:
|
||||
/* Disable quantum end and process it */
|
||||
mov byte ptr [ebx+KPCR_PRCB_QUANTUM_END], 0
|
||||
call _KiQuantumEnd@0
|
||||
pop ebx
|
||||
ret
|
||||
.endfunc
|
||||
|
||||
|
||||
Reference in New Issue
Block a user