From: Alexander Soldatov Date: Thu, 31 Aug 2017 18:14:07 +0000 (+0300) Subject: [RyuJIT/ARM32] Correct handling of double registers in registerIsAvailable() X-Git-Tag: submit/tizen/20210909.063632~11030^2~6513^2~157^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fa4e8b8c05725c7d7151043fd8885b664e9ca67e;p=platform%2Fupstream%2Fdotnet%2Fruntime.git [RyuJIT/ARM32] Correct handling of double registers in registerIsAvailable() Commit migrated from https://github.com/dotnet/coreclr/commit/973fd568a6efd238080fe7b23973c1340d675c35 --- diff --git a/src/coreclr/src/jit/lsra.cpp b/src/coreclr/src/jit/lsra.cpp index 522ec92..9ec680e 100644 --- a/src/coreclr/src/jit/lsra.cpp +++ b/src/coreclr/src/jit/lsra.cpp @@ -5219,8 +5219,7 @@ bool LinearScan::registerIsAvailable(RegRecord* physRegRecord, if (regType == TYP_DOUBLE) { // Recurse, but check the other half this time (TYP_FLOAT) - if (!registerIsAvailable(getRegisterRecord(REG_NEXT(physRegRecord->regNum)), currentLoc, nextRefLocationPtr, - TYP_FLOAT)) + if (!registerIsAvailable(findAnotherHalfRegRec(physRegRecord), currentLoc, nextRefLocationPtr, TYP_FLOAT)) return false; nextRefLocation = *nextRefLocationPtr; }