On Fri, Sep 02, 2022 at 03:02:31PM +0200, Tijl Coosemans wrote:
> On Wed, 24 Aug 2022 19:25:12 GMT Konstantin Belousov <[email protected]>
> wrote:
> > The branch main has been updated by kib:
> > 
> > URL: 
> > https://cgit.FreeBSD.org/src/commit/?id=e8b2980e4a126407e15d33ee8d987385c8321261
> > 
> > commit e8b2980e4a126407e15d33ee8d987385c8321261
> > Author:     Konstantin Belousov <[email protected]>
> > AuthorDate: 2022-08-18 04:07:29 +0000
> > Commit:     Konstantin Belousov <[email protected]>
> > CommitDate: 2022-08-24 19:12:05 +0000
> > 
> >     i386 doreti: stop saving/restoring %ecx around calls into C
> >     
> >     There is no reason to do this.  Instead just calculate it later.
> >     
> >     Reviewed by:    jhb
> >     Tested by:      pho
> >     Sponsored by:   The FreeBSD Foundation
> >     MFC after:      1 week
> >     Differential revision:  https://reviews.freebsd.org/D36302
> > ---
> >  sys/i386/i386/exception.s | 17 ++++++++---------
> >  1 file changed, 8 insertions(+), 9 deletions(-)
> > 
> > diff --git a/sys/i386/i386/exception.s b/sys/i386/i386/exception.s
> > index 5eef9c1d512c..8279a4602ebf 100644
> > --- a/sys/i386/i386/exception.s
> > +++ b/sys/i386/i386/exception.s
> > @@ -518,22 +518,21 @@ doreti_exit:
> >     je      doreti_iret_nmi
> >     cmpl    $T_TRCTRAP, TF_TRAPNO(%esp)
> >     je      doreti_iret_nmi
> > -   movl    $TF_SZ, %ecx
> >     testl   $PSL_VM,TF_EFLAGS(%esp)
> > -   jz      1f                      /* PCB_VM86CALL is not set */
> > -   addl    $VM86_STACK_SPACE, %ecx
> > -   jmp     2f
> > -1: testl   $SEL_RPL_MASK, TF_CS(%esp)
> > +   jnz     1f                      /* PCB_VM86CALL is not set */
> > +   testl   $SEL_RPL_MASK, TF_CS(%esp)
> >     jz      doreti_popl_fs
> > -2: movl    $handle_ibrs_exit,%eax
> > -   pushl   %ecx                    /* preserve enough call-used regs */
> > +1: movl    $handle_ibrs_exit,%eax
> >     call    *%eax
> >     movl    mds_handler,%eax
> >     call    *%eax
> > -   popl    %ecx
> >     movl    %esp, %esi
> >     movl    PCPU(TRAMPSTK), %edx
> > -   subl    %ecx, %edx
> > +   movl    $TF_SZ, %ecx
> > +   testl   $PSL_VM,TF_EFLAGS(%esp)
> > +   jz      2f                      /* PCB_VM86CALL is not set */
> > +   addl    $VM86_STACK_SPACE, %ecx
> > +2: subl    $TF_SZ, %edx
> 
> Shouldn't this be "subl %ecx, %edx"?

You are right, please fix.

Reply via email to