DescriptionSubzero: Fix srem.i8/urem.i8 lowering for x86-64.
The problem was that the lowering sequence might lead to the rem result %ah being directly moved into an 8-bit register other than al/bl/cl/dl/ah/bh/ch/dh. This is not encodable, and attempting to encode it leads to actually moving from %spl instead of %ah.
The machinery to handle this was already available - copy through a temporary with register class RCX86_IsAhRcvr. So this was just a matter of hooking it up for srem/urem.
This CL also requires relaxing some checks in the register allocator for when the -reg-reserve option is used.
BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4370
R=jpp@chromium.org
Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=2655d9627f11b0c97f10eacf1f730bf66e5db05b
Patch Set 1 #
Messages
Total messages: 7 (4 generated)
|