x86_64: Allow test to skip register pairs. Fix XCHG and enable tests.

Previously tests were disabled for `xchgl reg, reg` variant with all
register pairs, although the problematic case is only `xchg eax, eax`.

This commit allows one to pass an exception list to a testing function
and skip the problematic register pairs instead of disabling the whole
test. The patch adds exception lists to all testing functions that run
over register pairs, although XCHG only needs it for `Repeatrr`.

Enabling the test revealed a few small errors in the XCHG implementation
(namely, source and destination registers were swapped, which does not
affect the result). This commit fixes the implementation so that the
tests pass.

Bug: 65872996
Test: m test-art-host-gtest
Change-Id: Iaa759861330bcfb30db1a8219b805cc479cc3280
4 files changed