x86, kvm: Remove incorrect redundant assembly constraint
authorH. Peter Anvin <hpa@linux.intel.com>
Wed, 21 Nov 2012 22:41:21 +0000 (14:41 -0800)
committerH. Peter Anvin <hpa@linux.intel.com>
Mon, 26 Nov 2012 23:52:48 +0000 (15:52 -0800)
commitcb7cb2864e758a1b040040bc55e404c677c911cb
tree3e2a2b9fb95d1d181567630645b7162bb1893258
parent9489e9dcae718d5fde988e4a684a0f55b5f94d17
x86, kvm: Remove incorrect redundant assembly constraint

In __emulate_1op_rax_rdx, we use "+a" and "+d" which are input/output
constraints, and *then* use "a" and "d" as input constraints.  This is
incorrect, but happens to work on some versions of gcc.

However, it breaks gcc with -O0 and icc, and may break on future
versions of gcc.

Reported-and-tested-by: Melanie Blower <melanie.blower@intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Link: http://lkml.kernel.org/r/B3584E72CFEBED439A3ECA9BCE67A4EF1B17AF90@FMSMSX107.amr.corp.intel.com
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Marcelo Tosatti <mtosatti@redhat.com>
arch/x86/kvm/emulate.c