summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarol Eidt <carol.eidt@microsoft.com>2018-03-05 22:41:07 +0100
committerGitHub <noreply@github.com>2018-03-05 22:41:07 +0100
commitaea934091c11eb25eb11cb624780ba9e70c72641 (patch)
tree96e7181857cc053a84b61e3af3fd3835d8caa1d2
parent5763bb4fa31a856a6fc510f46dc059907d6f03af (diff)
parent1765a4e337ac9e992760783e1e717f7b24cc2d89 (diff)
downloadcoreclr-aea934091c11eb25eb11cb624780ba9e70c72641.tar.gz
coreclr-aea934091c11eb25eb11cb624780ba9e70c72641.tar.bz2
coreclr-aea934091c11eb25eb11cb624780ba9e70c72641.zip
Merge pull request #16727 from CarolEidt/NoIndirByte
Don't force byte regs for indir address
-rw-r--r--src/jit/lsraxarch.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/jit/lsraxarch.cpp b/src/jit/lsraxarch.cpp
index 296d558fba..17b637898c 100644
--- a/src/jit/lsraxarch.cpp
+++ b/src/jit/lsraxarch.cpp
@@ -754,7 +754,9 @@ void LinearScan::BuildCheckByteable(GenTree* tree)
if (tree->OperIsSimple())
{
GenTree* op = tree->gtOp.gtOp1;
- if (op != nullptr)
+ // We need byte registers on the operands of most simple operators that produce a byte result.
+ // However, indirections are simple operators but do not require their address in a byte register.
+ if ((op != nullptr) && !tree->OperIsIndir())
{
// No need to set src candidates on a contained child operand.
if (!op->isContained())