Changeset 2588 in CLRX


Ignore:
Timestamp:
Nov 21, 2016, 9:45:59 PM (3 years ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmROCm: Update.

Location:
CLRadeonExtender/trunk/amdasm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/amdasm/AsmInternals.h

    r2586 r2588  
    521521enum ROCmConfigValueTarget
    522522{
     523    ROCMCVAL_SGPRSNUM,
     524    ROCMCVAL_VGPRSNUM,
     525    ROCMCVAL_PRIVMODE,
     526    ROCMCVAL_DEBUGMODE,
     527    ROCMCVAL_DX10CLAMP,
     528    ROCMCVAL_IEEEMODE,
     529    ROCMCVAL_TGSIZE,
     530    ROCMCVAL_FLOATMODE,
     531    ROCMCVAL_PRIORITY,
     532    ROCMCVAL_EXCEPTIONS,
     533    ROCMCVAL_LOCALSIZE,
     534    ROCMCVAL_USERDATANUM,
     535    ROCMCVAL_PGMRSRC1,
     536    ROCMCVAL_PGMRSRC2,
     537    ROCMCVAL_SCRATCHBUFFER,
     538    ROCMCVAL_KERNEL_CODE_ENTRY_OFFSET,
     539    ROCMCVAL_KERNEL_CODE_PREFETCH_OFFSET,
     540    ROCMCVAL_KERNEL_CODE_PREFETCH_SIZE,
     541    ROCMCVAL_MAX_SCRATCH_BACKING_MEMORY,
     542    ROCMCVAL_USE_PRIVATE_SEGMENT_BUFFER,
     543    ROCMCVAL_USE_DISPATCH_PTR,
     544    ROCMCVAL_USE_QUEUE_PTR,
     545    ROCMCVAL_USE_KERNARG_SEGMENT_PTR,
     546    ROCMCVAL_USE_DISPATCH_ID,
     547    ROCMCVAL_USE_FLAT_SCRATCH_INIT,
     548    ROCMCVAL_USE_PRIVATE_SEGMENT_SIZE,
     549    ROCMCVAL_USE_ORDERED_APPEND_GDS,
     550    ROCMCVAL_PRIVATE_ELEM_SIZE,
     551    ROCMCVAL_USE_PTR64,
     552    ROCMCVAL_USE_DYNAMIC_CALL_STACK,
     553    ROCMCVAL_USE_DEBUG_ENABLED,
     554    ROCMCVAL_USE_XNACK_ENABLED,
     555    ROCMCVAL_WORKITEM_PRIVATE_SEGMENT_SIZE,
     556    ROCMCVAL_WORKGROUP_GROUP_SEGMENT_SIZE,
     557    ROCMCVAL_GDS_SEGMENT_SIZE,
     558    ROCMCVAL_KERNARG_SEGMENT_SIZE,
     559    ROCMCVAL_WORKGROUP_FBARRIER_COUNT,
     560    ROCMCVAL_WAVEFRONT_SGPR_COUNT,
     561    ROCMCVAL_WORKITEM_VGPR_COUNT,
     562    ROCMCVAL_RESERVED_VGPR_FIRST,
     563    ROCMCVAL_RESERVED_VGPR_COUNT,
     564    ROCMCVAL_RESERVED_SGPR_FIRST,
     565    ROCMCVAL_RESERVED_SGPR_COUNT,
     566    ROCMCVAL_DEBUG_WAVEFRONT_PRIVATE_SEGMENT_OFFSET_SGPR,
     567    ROCMCVAL_DEBUG_PRIVATE_SEGMENT_BUFFER_SGPR,
     568    ROCMCVAL_KERNARG_SEGMENT_ALIGN,
     569    ROCMCVAL_GROUP_SEGMENT_ALIGN,
     570    ROCMCVAL_PRIVATE_SEGMENT_ALIGN,
     571    ROCMCVAL_WAVEFRONT_SIZE,
     572    ROCMCVAL_CALL_CONVENTION,
     573    ROCMCVAL_RUNTIME_LOADER_KERNEL_SYMBOL
    523574};
    524575
  • CLRadeonExtender/trunk/amdasm/AsmROCmFormat.cpp

    r2587 r2588  
    268268void AsmROCmHandler::Kernel::initializeKernelConfig()
    269269{
    270     config.reset(new ROCmKernelConfig{});
    271     ::memset(config.get(), 0, sizeof(ROCmKernelConfig));
     270    if (!config)
     271    {
     272        config.reset(new ROCmKernelConfig{});
     273        ::memset(config.get(), 0, sizeof(ROCmKernelConfig));
     274    }
    272275}
    273276
     
    377380    {
    378381        case ROCMOP_CALL_CONVENTION:
     382            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     383                             ROCMCVAL_CALL_CONVENTION);
    379384            break;
    380385        case ROCMOP_CODEVERSION:
     
    385390            break;
    386391        case ROCMOP_DEBUG_PRIVATE_SEGMENT_BUFFER_SGPR:
     392            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     393                             ROCMCVAL_DEBUG_PRIVATE_SEGMENT_BUFFER_SGPR);
    387394            break;
    388395        case ROCMOP_DEBUG_WAVEFRONT_PRIVATE_SEGMENT_OFFSET_SGPR:
     396            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     397                         ROCMCVAL_DEBUG_WAVEFRONT_PRIVATE_SEGMENT_OFFSET_SGPR);
    389398            break;
    390399        case ROCMOP_DEBUGMODE:
     400            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     401                             ROCMCVAL_DEBUGMODE);
    391402            break;
    392403        case ROCMOP_DIMS:
    393404            break;
    394405        case ROCMOP_DX10CLAMP:
     406            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     407                             ROCMCVAL_DX10CLAMP);
    395408            break;
    396409        case ROCMOP_EXCEPTIONS:
     410            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     411                             ROCMCVAL_EXCEPTIONS);
    397412            break;
    398413        case ROCMOP_FLOATMODE:
     414            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     415                             ROCMCVAL_FLOATMODE);
    399416            break;
    400417        case ROCMOP_GDS_SEGMENT_SIZE:
     418            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     419                             ROCMCVAL_GDS_SEGMENT_SIZE);
    401420            break;
    402421        case ROCMOP_GROUP_SEGMENT_ALIGN:
     422            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     423                             ROCMCVAL_GROUP_SEGMENT_ALIGN);
    403424            break;
    404425        case ROCMOP_IEEEMODE:
     426            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     427                             ROCMCVAL_IEEEMODE);
    405428            break;
    406429        case ROCMOP_KCODE:
     
    409432            break;
    410433        case ROCMOP_KERNARG_SEGMENT_ALIGN:
     434            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     435                             ROCMCVAL_KERNARG_SEGMENT_ALIGN);
    411436            break;
    412437        case ROCMOP_KERNARG_SEGMENT_SIZE:
     438            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     439                             ROCMCVAL_KERNARG_SEGMENT_SIZE);
    413440            break;
    414441        case ROCMOP_KERNEL_CODE_ENTRY_OFFSET:
     442            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     443                             ROCMCVAL_KERNEL_CODE_ENTRY_OFFSET);
    415444            break;
    416445        case ROCMOP_KERNEL_CODE_PREFETCH_OFFSET:
     446            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     447                             ROCMCVAL_KERNEL_CODE_PREFETCH_OFFSET);
    417448            break;
    418449        case ROCMOP_KERNEL_CODE_PREFETCH_SIZE:
     450            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     451                             ROCMCVAL_KERNEL_CODE_PREFETCH_SIZE);
    419452            break;
    420453        case ROCMOP_LOCALSIZE:
     454            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     455                             ROCMCVAL_LOCALSIZE);
    421456            break;
    422457        case ROCMOP_MACHINE:
    423458            break;
    424459        case ROCMOP_MAX_SCRATCH_BACKING_MEMORY:
     460            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     461                             ROCMCVAL_MAX_SCRATCH_BACKING_MEMORY);
    425462            break;
    426463        case ROCMOP_PGMRSRC1:
     464            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr, ROCMCVAL_PGMRSRC1);
    427465            break;
    428466        case ROCMOP_PGMRSRC2:
     467            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr, ROCMCVAL_PGMRSRC2);
    429468            break;
    430469        case ROCMOP_PRIORITY:
     470            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr, ROCMCVAL_PRIORITY);
    431471            break;
    432472        case ROCMOP_PRIVATE_SEGMENT_ALIGN:
     473            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     474                             ROCMCVAL_PRIVATE_SEGMENT_ALIGN);
    433475            break;
    434476        case ROCMOP_PRIVMODE:
     477            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     478                             ROCMCVAL_PRIVMODE);
    435479            break;
    436480        case ROCMOP_RESERVED_SGPR_COUNT:
     481            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     482                             ROCMCVAL_RESERVED_SGPR_COUNT);
    437483            break;
    438484        case ROCMOP_RESERVED_SGPR_FIRST:
     485            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     486                             ROCMCVAL_RESERVED_SGPR_FIRST);
    439487            break;
    440488        case ROCMOP_RESERVED_VGPR_COUNT:
     489            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     490                             ROCMCVAL_RESERVED_VGPR_COUNT);
    441491            break;
    442492        case ROCMOP_RESERVED_VGPR_FIRST:
     493            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     494                             ROCMCVAL_RESERVED_VGPR_FIRST);
    443495            break;
    444496        case ROCMOP_RUNTIME_LOADER_KERNEL_SYMBOL:
     497            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     498                             ROCMCVAL_RUNTIME_LOADER_KERNEL_SYMBOL);
    445499            break;
    446500        case ROCMOP_SCRATCHBUFFER:
     501            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     502                             ROCMCVAL_SCRATCHBUFFER);
    447503            break;
    448504        case ROCMOP_SGPRSNUM:
     505            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     506                             ROCMCVAL_SGPRSNUM);
    449507            break;
    450508        case ROCMOP_TGSIZE:
     509            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     510                             ROCMCVAL_TGSIZE);
    451511            break;
    452512        case ROCMOP_USE_DEBUG_ENABLED:
     513            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     514                             ROCMCVAL_USE_DEBUG_ENABLED);
    453515            break;
    454516        case ROCMOP_USE_DISPATCH_ID:
     517            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     518                             ROCMCVAL_USE_DISPATCH_ID);
    455519            break;
    456520        case ROCMOP_USE_DISPATCH_PTR:
     521            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     522                             ROCMCVAL_USE_DISPATCH_PTR);
    457523            break;
    458524        case ROCMOP_USE_DYNAMIC_CALL_STACK:
     525            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     526                             ROCMCVAL_USE_DYNAMIC_CALL_STACK);
    459527            break;
    460528        case ROCMOP_USE_FLAT_SCRATCH_INIT:
     529            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     530                             ROCMCVAL_USE_FLAT_SCRATCH_INIT);
    461531            break;
    462532        case ROCMOP_USE_GRID_WORKGROUP_COUNT:
    463533            break;
    464534        case ROCMOP_USE_KERNARG_SEGMENT_PTR:
     535            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     536                             ROCMCVAL_USE_KERNARG_SEGMENT_PTR);
    465537            break;
    466538        case ROCMOP_USE_ORDERED_APPEND_GDS:
     539            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     540                             ROCMCVAL_USE_ORDERED_APPEND_GDS);
    467541            break;
    468542        case ROCMOP_USE_PRIVATE_SEGMENT_SIZE:
     543            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     544                             ROCMCVAL_USE_PRIVATE_SEGMENT_SIZE);
    469545            break;
    470546        case ROCMOP_USE_PTR64:
     547            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     548                             ROCMCVAL_USE_PTR64);
    471549            break;
    472550        case ROCMOP_USE_QUEUE_PTR:
     551            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     552                             ROCMCVAL_USE_QUEUE_PTR);
    473553            break;
    474554        case ROCMOP_USE_PRIVATE_SEGMENT_BUFFER:
     555            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     556                             ROCMCVAL_USE_PRIVATE_SEGMENT_BUFFER);
    475557            break;
    476558        case ROCMOP_USE_XNACK_ENABLED:
     559            AsmROCmPseudoOps::setConfigBoolValue(*this, stmtPlace, linePtr,
     560                             ROCMCVAL_USE_XNACK_ENABLED);
    477561            break;
    478562        case ROCMOP_USERDATANUM:
     563            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     564                             ROCMCVAL_USERDATANUM);
    479565            break;
    480566        case ROCMOP_VGPRSNUM:
     567            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr, ROCMCVAL_VGPRSNUM);
    481568            break;
    482569        case ROCMOP_WAVEFRONT_SGPR_COUNT:
     570            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     571                             ROCMCVAL_WAVEFRONT_SGPR_COUNT);
    483572            break;
    484573        case ROCMOP_WAVEFRONT_SIZE:
     574            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     575                             ROCMCVAL_WAVEFRONT_SIZE);
    485576            break;
    486577        case ROCMOP_WORKITEM_VGPR_COUNT:
     578            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     579                             ROCMCVAL_WORKITEM_VGPR_COUNT);
    487580            break;
    488581        case ROCMOP_WORKGROUP_FBARRIER_COUNT:
     582            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     583                             ROCMCVAL_WORKGROUP_FBARRIER_COUNT);
    489584            break;
    490585        case ROCMOP_WORKGROUP_GROUP_SEGMENT_SIZE:
     586            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     587                             ROCMCVAL_WORKGROUP_GROUP_SEGMENT_SIZE);
    491588            break;
    492589        case ROCMOP_WORKITEM_PRIVATE_SEGMENT_SIZE:
     590            AsmROCmPseudoOps::setConfigValue(*this, stmtPlace, linePtr,
     591                             ROCMCVAL_WORKITEM_PRIVATE_SEGMENT_SIZE);
    493592            break;
    494593        default:
Note: See TracChangeset for help on using the changeset viewer.