0d28233e96
This change fixes a bug in the IA32 FG Moves, where any moves of Int8 and Uint8 from a register other than the first four general purpose registers would be bogus. The moves would generate to move the second byte of the first four GP registers because the other four registers do not have byte registers. This change also fixes an issue where X64 byte register moves would generate incorrect bytecode for otherwise correct instruction prints. It would for instance print "movb [rsp],rdi", but emit "movb [rsp],bh". This change also fixes a bug in NativeFpuRegistersLocation::Equals that cause different FPU regs. to compare equal despite being different kinds. This in turn caused moves between these different regs. to be dropped because they looked like no-ops. See also: https://dart-review.googlesource.com/c/sdk/+/221624 TEST=Existing. Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-debug-ia32-try,vm-kernel-nnbd-win-release-ia32-try Change-Id: I09e69295c8a522d74f8a8fd817188b4de656c619 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/237690 Reviewed-by: Daco Harkes <dacoharkes@google.com> Commit-Queue: Clement Skau <cskau@google.com>