|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Ping: [PATCH v2 6/6] x86emul: simplify FPU handling asm() constraints
>>> On 08.12.16 at 12:38, <JBeulich@xxxxxxxx> wrote:
> The memory clobber is rather harsh here. However, fic.exn_raised may be
> modified as a side effect, so we need to let the compiler know that all
> of "fic" may be changed (preventing it from moving around accesses to
> the exn_raised field).
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Ping? (The v1 discussion had stalled, so at that point it seemed best
to simply re-send with the updates to the earlier patches.)
> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
> @@ -759,7 +759,7 @@ do {
> })
>
> struct fpu_insn_ctxt {
> - uint8_t insn_bytes;
> + uint8_t insn_bytes; /* Must be first! */
> int8_t exn_raised;
> };
>
> @@ -853,23 +853,21 @@ do {
> "movb $2f-1f,%0 \n" \
> "1: " _op " \n" \
> "2: \n" \
> - : "=m" (fic.insn_bytes) : : "memory" )
> + : "+m" (fic) )
>
> #define emulate_fpu_insn_memdst(_op, _arg) \
> asm volatile ( \
> "movb $2f-1f,%0 \n" \
> "1: " _op " %1 \n" \
> "2: \n" \
> - : "=m" (fic.insn_bytes), "=m" (_arg) \
> - : : "memory" )
> + : "+m" (fic), "=m" (_arg) )
>
> #define emulate_fpu_insn_memsrc(_op, _arg) \
> asm volatile ( \
> "movb $2f-1f,%0 \n" \
> "1: " _op " %1 \n" \
> "2: \n" \
> - : "=m" (fic.insn_bytes) \
> - : "m" (_arg) : "memory" )
> + : "+m" (fic) : "m" (_arg) )
>
> #define emulate_fpu_insn_stub(_bytes...) \
> do { \
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |