kvmvapic: Simplify mp/up_set_tpr
authorJan Kiszka <jan.kiszka@siemens.com>
Fri, 17 Feb 2012 17:31:20 +0000 (18:31 +0100)
committerAvi Kivity <avi@redhat.com>
Sat, 18 Feb 2012 10:16:00 +0000 (12:16 +0200)
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>
pc-bios/optionrom/kvmvapic.S

index e1d8f1825b58f7a5fe12fb4e411e4f6fbed8eb89..856c1e519d89e43fae0adc85b72bc5a7c6baa8f9 100644 (file)
@@ -202,7 +202,6 @@ mp_isr_is_bigger:
        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
@@ -276,7 +275,6 @@ up_set_tpr_eax:
 up_set_tpr:
        pushf
        push %eax
-       push %ecx
        push %ebx
        reenable_vtpr
 
@@ -284,7 +282,7 @@ up_set_tpr_failed:
        mov vapic, %eax ; fixup
 
        mov %eax, %ebx
-       mov 20(%esp), %bl
+       mov 16(%esp), %bl
 
        /* %ebx = new vapic (%bl = tpr, %bh = isr, %b3 = irr) */
 
@@ -298,7 +296,6 @@ up_isr_is_bigger:
        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
@@ -306,7 +303,6 @@ up_tpr_is_bigger:
 
 up_set_tpr_out:
        pop %ebx
-       pop %ecx
        pop %eax
        popf
        ret $4