Ejemplo n.º 1
0
def verifyReposFromFile(sassname, reposfile, arch='sm_75'):

    # initialize a feeder with sass
    feeder = CuInsFeeder(sassname, arch=arch)

    # initialize an empty repos
    repos = CuInsAssemblerRepos(reposfile, arch=arch)#

    # verify the repos
    repos.verify(feeder)
Ejemplo n.º 2
0
def constructReposFromFile(sassname, savname=None, arch='sm_75'):
    # initialize a feeder with sass
    feeder = CuInsFeeder(sassname, arch=arch)

    # initialize an empty repos
    repos = CuInsAssemblerRepos(arch=arch)#

    # Update the repos with instructions from feeder
    repos.update(feeder)

    # reset the feeder back to start
    feeder.restart()

    # verify the repos
    # actually the codes is already verifed during repos construction
    repos.verify(feeder)

    if savname is not None:
        repos.save2file(savname)

    return repos
Ejemplo n.º 3
0
def doExtract(fname, insfilter='', arch='sm_75', maxcnt=100):
    feeder = CuInsFeeder(fname, instfilter=insfilter, arch=arch)

    print("# Searching %s with filter %s:" % (fname, insfilter))
    cnt = 0
    for addr, code, s, ctrl in feeder:
        #s = s.replace('.reuse','')
        ctrlstr = decodeCtrlCodes(ctrl)
        #print(' %s: 0x%06x  0x%032x     %s'%(ctrlstr, addr, code, s))
        print('0x%03x: [%s] %#016x  %s ' % (addr, ctrlstr, code, s))
        print(binstr(code, 64))
        print(hexstr(code, 64))

        cnt += 1
        if cnt >= maxcnt:
            break
Ejemplo n.º 4
0
def test_sm75():
    cnt = 0
    fname = r'G:\Work\CuAssembler\TestData\CuTest\cudatest.sm_75.sass'
    feeder = CuInsFeeder(fname, arch='sm_75')

    cip = CuInsParser(arch='sm_75')

    for addr, code, s, ctrlcodes in feeder:
        print('0x%04x :   0x%06x   0x%028x   %s' % (addr, ctrlcodes, code, s))

        ins_key, ins_vals, ins_modi = cip.parse(s, addr, code)
        print('    Ins_Key = %s' % ins_key)
        print('    Ins_Vals = %s' % str(ins_vals))
        print('    Ins_Modi = %s' % str(ins_modi))

        cnt += 1
        if cnt > 10:
            break
Ejemplo n.º 5
0
def test_sm61():
    fname = r'G:\Work\CuAssembler\TestData\CuTest\cudatest.sm_61.sass'
    feeder = CuInsFeeder(fname, arch='sm_61')

    for addr, code, s, ctrlcodes in feeder:
        print('0x%04x :   0x%06x   0x%016x   %s' % (addr, ctrlcodes, code, s))
Ejemplo n.º 6
0
# -*- coding: utf-8 -*-

from CuAsm.CuInsAssemblerRepos import CuInsAssemblerRepos
from CuAsm.CuInsFeeder import CuInsFeeder

sassname = 'G:\\Temp\\cudnn64_7.sm_50.sass'
# initialize a feeder with sass
feeder = CuInsFeeder(sassname, arch='sm_50')

# initialize an empty repos
repos = CuInsAssemblerRepos(arch='sm_50')

# Update the repos with instructions from feeder
repos.update(feeder)

# reset the feeder back to start
feeder.restart()

# verify the repos
# actually the codes is already verifed during repos construction
repos.verify(feeder)