x86: Fix the multiplication microops.
x86: Fix the multiplication microops.

If the operands were 64 bit, an intermediate calculation could lose a
carry bit. This change rearranges that intermediate calculation if the
operand width is large, and reworks the microop implementation in general
in an attempt to make it easier to understand.

Change-Id: Ib36333f3f2695a33cd9623e43682de22ebd2e7ea
Reviewed-on: https://gem5-review.googlesource.com/3381
Reviewed-by: Jason Lowe-Power <68c46a606457643eab92053c1c05574abb26f861@lowepower.com>
Reviewed-by: Anthony Gutierrez <fe4627c83134668039628e34eb0e4dda45a5da5e@amd.com>
Maintainer: Anthony Gutierrez <fe4627c83134668039628e34eb0e4dda45a5da5e@amd.com>

powerjg/gem5-ci-test,Weil0ng/gem5,powerjg/gem5-ci-test,TUD-OS/gem5-dtu,powerjg/gem5-ci-test,gedare/gem5,sobercoder/gem5,sobercoder/gem5,TUD-OS/gem5-dtu,Weil0ng/gem5,Weil0ng/gem5,gem5/gem5,gem5/gem5,powerjg/gem5-ci-test,gem5/gem5,rallylee/gem5,gem5/gem5,TUD-OS/gem5-dtu,Weil0ng/gem5,powerjg/gem5-ci-test,rallylee/gem5,TUD-OS/gem5-dtu,TUD-OS/gem5-dtu,rallylee/gem5,gem5/gem5,TUD-OS/gem5-dtu,gem5/gem5,rallylee/gem5,sobercoder/gem5,gedare/gem5,gedare/gem5,sobercoder/gem5,gedare/gem5,rallylee/gem5,rallylee/gem5,gedare/gem5,Weil0ng/gem5,powerjg/gem5-ci-test,sobercoder/gem5,gedare/gem5,sobercoder/gem5,sobercoder/gem5,rallylee/gem5,Weil0ng/gem5,gem5/gem5,Weil0ng/gem5,TUD-OS/gem5-dtu,gedare/gem5,powerjg/gem5-ci-test