def METHOD_NAME(self):
    regs = (5, 6, 7)
    dest = 4
    nreg = len(self.args)
    if nreg == 0:
        yield self.op
        return
    if isinstance(self.args[-1], ArgImm8u):
        nreg -= 1
        immarg = self.args[-1]
    else:
        immarg = None
    memarg = -1
    for n, arg in enumerate(self.args):
        if arg.ismem:
            memarg = n
    if nreg == 1:
        regset = [(regs[0],)]
        if memarg == 0:
            regset += [(-1,)]
    elif nreg == 2:
        regset = [
            (regs[0], regs[1]),
            (regs[0], regs[0]),
            ]
        if memarg == 0:
            regset += [(-1, regs[0])]
        elif memarg == 1:
            regset += [(dest, -1)]
    else:
        raise Exception("Too many regs: %s(%d)" % (self.op, nreg))
    for regv in regset:
        argstr = []
        for i in range(nreg):
            arg = self.args[i]
            argstr.append(arg.regstr(regv[i]))
        if immarg is None:
            yield self.op + ' ' + ','.join(argstr)
        else:
            for immval in immarg.vals():
                yield self.op + ' ' + ','.join(argstr) + ',' + str(immval)