mirror of https://github.com/acidanthera/audk.git
UefiCpuPkg/DxeMpLib: Fix bug when getting target C-State from eax
AP will get target C-State from eax[7:4]. We do shift in ebx firstly before set to eax. It will lead ebx is incorrect in the next time. The fix is to set ebx to eax firstly and does shift in eax. Thus, ebx could keep original value. Reported-by: Laszlo Ersek <lersek@redhat.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Feng Tian <feng.tian@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan <jeff.fan@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Tested-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
parent
9f91cb01c4
commit
f56379f361
|
@ -266,8 +266,8 @@ MwaitLoop:
|
||||||
xor ecx, ecx ; ecx = 0
|
xor ecx, ecx ; ecx = 0
|
||||||
xor edx, edx ; edx = 0
|
xor edx, edx ; edx = 0
|
||||||
monitor
|
monitor
|
||||||
shl ebx, 4
|
|
||||||
mov eax, ebx ; Mwait Cx, Target C-State per eax[7:4]
|
mov eax, ebx ; Mwait Cx, Target C-State per eax[7:4]
|
||||||
|
shl eax, 4
|
||||||
mwait
|
mwait
|
||||||
jmp MwaitLoop
|
jmp MwaitLoop
|
||||||
HltLoop:
|
HltLoop:
|
||||||
|
|
Loading…
Reference in New Issue