tcg: Make 32-bit multiword operations optional for 64-bit hosts

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-i386: Always implement 32-bit multiword ops

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-sparc: Always implement 32-bit multiword ops

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg: Add 64-bit multiword arithmetic operations

Matching the 32-bit multiword arithmetic that we already have.
tcg: Add signed multiword multiplication operations

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg: Implement a 64-bit to 32-bit extraction helper

We're going to have use for this shortly in implementing other helpers.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg: Implement multiword multiply helpers

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg: Implement multiword addition helpers

Signed-off-by: Richard Henderson <rth@twiddle.net>
target-i386: Use mulu2 and muls2

These correspond very closely to the insns that we're emulating.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-i386: Implement multiword arithmetic ops

Signed-off-by: Richard Henderson <rth@twiddle.net>
target-i386: Use add2 to implement the ADX extension

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg: Implement muls2 with mulu2

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-arm: Implement muls2_i32

We even had the encoding of smull already handy...

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg: Apply life analysis to 64-bit multiword arithmetic ops

Signed-off-by: Richard Henderson <rth@twiddle.net>
Tidy i386 muls2 use
target-i386: Use movcond to implement shift flags.

With this being all straight-line code, it can get deleted
when the cc variables die.

Signed-off-by: Richard Henderson <rth@twiddle.net>
target-i386: Use movcond to implement rotate flags.

With this being all straight-line code, it can get deleted
when the cc variables die.

Signed-off-by: Richard Henderson <rth@twiddle.net>
target-alpha: Use mulu2 for umulh insn

Signed-off-by: Richard Henderson <rth@twiddle.net>
target-s390x: Use mulu2 for mlgr insn

Signed-off-by: Richard Henderson <rth@twiddle.net>
target-arm: Use mul[us]2 in gen_mul[us]_i64_i32

Signed-off-by: Richard Henderson <rth@twiddle.net>