[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 7/7] x86/asm: Clobber %r{8..15} on exit to 32bit PV guests

>>> On 02.05.17 at 20:05, <andrew.cooper3@xxxxxxxxxx> wrote:
> @@ -366,6 +367,16 @@ static always_inline void stac(void)
>          LOAD_ONE_REG(bp, \compat)
>          LOAD_ONE_REG(bx, \compat)
>          subq  $-(UREGS_error_code-UREGS_r15+\adj), %rsp
> +.if \compat
> +        xor %r8d, %r8d
> +        xor %r9d, %r9d
> +        xor %r10d, %r10d
> +        xor %r11d, %r11d
> +        xor %r12d, %r12d
> +        xor %r13d, %r13d
> +        xor %r14d, %r14d
> +        xor %r15d, %r15d
> +.endif
>  .endm

Rather than having yet another .if, I think this would better be the
.else to one of the existing ones. Possibly even two .else-s, one
each for the R8-R11 and R12-R15 register ranges.

Also the d suffixes on the register names are pretty pointless here,
as a REX prefix is going to be needed anyway.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.