Changeset 4033 in CLRX


Ignore:
Timestamp:
Apr 20, 2018, 3:23:51 PM (4 months ago)
Author:
matszpk
Message:

CLRadeonExtender: GCNAsm: Simplify counting the SGPRs in VOP2/VOPC/VOP3.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/amdasm/GCNAssembler.cpp

    r4032 r4033  
    16161616        sgprsReaded++;
    16171617    if (haveSrcCC)
    1618     {
    16191618        // check for third operand (SSRC)
    1620         bool equalS0SCC = regRangeCanEqual(src0Op.range, srcCCReg);
    1621         bool equalS1SCC = regRangeCanEqual(src1Op.range, srcCCReg);
    1622         if((!equalS0SCC && !equalS1SCC) ||
    1623             (!srcCCReg.isRegVar() &&
    1624              ((!equalS0SCC && equalS1SCC && src1Op.range.isRegVar()) ||
    1625               (equalS0SCC && !equalS1SCC && src0Op.range.isRegVar()))) ||
    1626             (srcCCReg.isRegVar() &&
    1627                  ((!equalS0SCC && equalS1SCC && !src1Op.range.isRegVar()) ||
    1628                  (equalS0SCC && !equalS1SCC && !src0Op.range.isRegVar()))))
     1619        if (!regRangeCanEqual(src0Op.range, srcCCReg) &&
     1620            !regRangeCanEqual(src1Op.range, srcCCReg))
    16291621            sgprsReaded++;
    1630     }
    16311622   
    16321623    if (sgprsReaded >= 2)
     
    24192410        if (src2Op && src2Op.range.isSGPR())
    24202411        {
    2421             if (src0Op.range.isSGPR())
    2422             {
    2423                 if (src1Op.range.isSGPR())
    2424                 {   // SRC0 - SGPR, SRC1 - SGPR, SRC2 - SGPR
    2425                     if (!regRangeCanEqual(src0Op.range, src2Op.range) &&
    2426                         !regRangeCanEqual(src1Op.range, src2Op.range))
    2427                         numSgprToRead++;
    2428                 }
    2429                 // SRC0 - SGPR, SRC1 - VGPR, SRC2 - SGPR
    2430                 else if (!regRangeCanEqual(src0Op.range, src2Op.range))
    2431                     numSgprToRead++;
    2432             }
    2433             else
    2434             {
    2435                 if (src1Op.range.isSGPR())
    2436                 {    // SRC0 - VGPR, SRC1 - SGPR, SRC2 - SGPR
    2437                     if (!regRangeCanEqual(src1Op.range, src2Op.range))
    2438                         numSgprToRead++;
    2439                 }
    2440                 else // SRC0 - VGPR, SRC1 - VGPR, SRC2 - SGPR
    2441                     numSgprToRead++;
    2442             }
     2412            if (!regRangeCanEqual(src0Op.range, src2Op.range) &&
     2413                !regRangeCanEqual(src1Op.range, src2Op.range))
     2414                numSgprToRead++;
    24432415        }
    24442416       
Note: See TracChangeset for help on using the changeset viewer.