tcg/i386: Use SHLX/SHRX/SARX instructions
authorRichard Henderson <rth@twiddle.net>
Tue, 28 Jan 2014 19:39:49 +0000 (11:39 -0800)
committerRichard Henderson <rth@twiddle.net>
Mon, 17 Feb 2014 16:12:29 +0000 (10:12 -0600)
commit6399ab3325b7d4f77441c8a00fa9dae98bb0ac43
tree4775b16d8a9bf4da32cd8b083c7b4ebb40975a06
parent9d2eec202fad72ce05ee8d54dc5a6fb6dcb87776
tcg/i386: Use SHLX/SHRX/SARX instructions

These three-operand shift instructions do not require the shift count
to be placed into ECX.  This reduces the number of mov insns required,
with the mere addition of a new register constraint.

Don't attempt to get rid of the matching constraint, as that's impossible
to manipulate with just a new constraint.  In addition, constant shifts
still need the matching constraint.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg/i386/tcg-target.c