The CH registers is only written, never read. So we can remove these
operations and, in case of up_set_tpr, also the ECX push/pop.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
mov %bh, %bl
mp_tpr_is_bigger:
/* %bl = ppr */
- mov %bl, %ch /* ch = ppr */
rol $8, %ebx
/* now: %bl = irr, %bh = ppr */
cmp %bh, %bl
up_set_tpr:
pushf
push %eax
- push %ecx
push %ebx
reenable_vtpr
mov vapic, %eax ; fixup
mov %eax, %ebx
- mov 20(%esp), %bl
+ mov 16(%esp), %bl
/* %ebx = new vapic (%bl = tpr, %bh = isr, %b3 = irr) */
mov %bh, %bl
up_tpr_is_bigger:
/* %bl = ppr */
- mov %bl, %ch /* ch = ppr */
rol $8, %ebx
/* now: %bl = irr, %bh = ppr */
cmp %bh, %bl
up_set_tpr_out:
pop %ebx
- pop %ecx
pop %eax
popf
ret $4