Changeset 4843 in CLRX


Ignore:
Timestamp:
Jul 26, 2019, 6:57:18 AM (4 months ago)
Author:
matszpk
Message:

CLRadeonExtender: GCNAsm: Disable checking whether SPGR range cross some register lines for GFX10.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

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

    r4810 r4843  
    193193    skipSpacesToEnd(linePtr, end);
    194194    const char* regRangePlace = linePtr;
     195    const bool isGCN15 = ((arch & ARCH_GCN_1_5)!=0);
    195196   
    196197    AsmSymbolEntry* symEntry = nullptr;
     
    279280                                        "Unaligned scalar register range")
    280281                    }
    281                     else if ((flags & INSTROP_UNALIGNED) == INSTROP_SGPR_UNALIGNED)
     282                    else if (!isGCN15 &&
     283                        (flags & INSTROP_UNALIGNED) == INSTROP_SGPR_UNALIGNED)
    282284                        if ((rstart & 0xfc) != ((rend-1) & 0xfc))
    283285                            // unaligned, but some restrictions:
     
    453455    skipSpacesToEnd(linePtr, end);
    454456    const char* sgprRangePlace = linePtr;
     457    const bool isGCN15 = ((arch & ARCH_GCN_1_5)!=0);
    455458    if (linePtr == end)
    456459    {
     
    799802                    ASM_FAIL_BY_ERROR(sgprRangePlace, "Unaligned scalar register range")
    800803            }
    801             else  if ((flags & INSTROP_UNALIGNED)==INSTROP_SGPR_UNALIGNED)
     804            else  if (!isGCN15 &&
     805                (flags & INSTROP_UNALIGNED)==INSTROP_SGPR_UNALIGNED)
    802806                if ((value1 & 0xfc) != ((value2) & 0xfc))
    803807                   // unaligned, but some restrictions
  • CLRadeonExtender/trunk/tests/amdasm/GCNAsmOpc15.cpp

    r4842 r4843  
    23052305        0xd5650037U, 0x00034d4fU, true, true, "" },
    23062306    // sgpr alignment check
    2307     { "   v_mul_f64  v[55:56], s[79:80], v[166:167]", 0, 0, false, false,
    2308         "test.s:1:25: Error: Scalar register range cross two register lines\n" },
    2309     { "z=%s[70:89] ;v_mul_f64  v[55:56], z[9:10], v[166:167]", 0, 0, false, false,
    2310         "test.s:1:35: Error: Scalar register range cross two register lines\n" },
     2307    { "   v_mul_f64  v[55:56], s[79:80], v[166:167]",
     2308        0xd5650037U, 0x00034c4fU, true, true, "" },
     2309    { "z=%s[70:89] ;v_mul_f64  v[55:56], z[9:10], v[166:167]",
     2310        0xd5650037U, 0x00034c4fU, true, true, "" },
    23112311    { "   v_mul_f64  v[55:56], s[77:78], v[166:167]",
    23122312        0xd5650037U, 0x00034c4dU, true, true, "" },
Note: See TracChangeset for help on using the changeset viewer.