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

Re: [Xen-devel] [PATCH] x86/ioemul: Misc improvements to ioport_emulate.c



>>> On 26.01.18 at 15:48, <andrew.cooper3@xxxxxxxxxx> wrote:
> Put the opcode into an array and use memcpy.  This allows the compiled code to
> be written with two movs, rather than 10 mov $imm8's.  Also, drop trailing
> whitespace in the file.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

It's a clear improvement, so
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
but ...

> @@ -11,32 +11,24 @@
>  static bool ioemul_handle_proliant_quirk(
>      u8 opcode, char *io_emul_stub, struct cpu_user_regs *regs)
>  {
> +    static const char stub[] = {
> +        0x9c,       /*    pushf           */
> +        0xfa,       /*    cli             */
> +        0xee,       /*    out %al, %dx    */
> +        0xec,       /* 1: in %dx, %al     */
> +        0xa8, 0x80, /*    test $0x80, %al */
> +        0x75, 0xfb, /*    jnz 1b          */
> +        0x9d,       /*    popf            */
> +        0xc3,       /*    ret             */
> +    };

... could you go even further and avoid this hex encoding of insns
altogether, but using a file scope asm(), or a function scope one
putting this into e.g. .fixup via .pushsection/.popsection?

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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