Changeset 3674:0ca7692eff15 in livinglogic.python.xist

Show
Ignore:
Timestamp:
01/02/09 19:32:17 (10 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Whitespace.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/ll/ul4c.py

    r3673 r3674  
    790790    def _pythonsource_dispatch_None(self, opcode): 
    791791        self.lines.append("%syield %r" % (self.indent, opcode.location.code)) 
     792 
    792793    def _pythonsource_dispatch_loadstr(self, opcode): 
    793794        self.lines.append("%sreg%d = %r" % (self.indent, opcode.r1, opcode.arg)) 
     795 
    794796    def _pythonsource_dispatch_loadint(self, opcode): 
    795797        self.lines.append("%sreg%d = %s" % (self.indent, opcode.r1, opcode.arg)) 
     798 
    796799    def _pythonsource_dispatch_loadfloat(self, opcode): 
    797800        self.lines.append("%sreg%d = %s" % (self.indent, opcode.r1, opcode.arg)) 
     801 
    798802    def _pythonsource_dispatch_loadnone(self, opcode): 
    799803        self.lines.append("%sreg%d = None" % (self.indent, opcode.r1)) 
     804 
    800805    def _pythonsource_dispatch_loadfalse(self, opcode): 
    801806        self.lines.append("%sreg%d = False" % (self.indent, opcode.r1)) 
     807 
    802808    def _pythonsource_dispatch_loadtrue(self, opcode): 
    803809        self.lines.append("%sreg%d = True" % (self.indent, opcode.r1)) 
     810 
    804811    def _pythonsource_dispatch_loaddate(self, opcode): 
    805812        self.lines.append("%sreg%d = datetime.datetime(%s)" % (self.indent, opcode.r1, ", ".join(str(int(p)) for p in datesplitter.split(opcode.arg)))) 
     813 
    806814    def _pythonsource_dispatch_loadcolor(self, opcode): 
    807815        self.lines.append("%sreg%d = color.Color(0x%s, 0x%s, 0x%s, 0x%s)" % (self.indent, opcode.r1, opcode.arg[:2], opcode.arg[2:4], opcode.arg[4:6], opcode.arg[6:])) 
     816 
    808817    def _pythonsource_dispatch_buildlist(self, opcode): 
    809818        self.lines.append("%sreg%d = []" % (self.indent, opcode.r1)) 
     819 
    810820    def _pythonsource_dispatch_builddict(self, opcode): 
    811821        self.lines.append("%sreg%d = {}" % (self.indent, opcode.r1)) 
     822 
    812823    def _pythonsource_dispatch_addlist(self, opcode): 
    813824        self.lines.append("%sreg%d.append(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     825 
    814826    def _pythonsource_dispatch_adddict(self, opcode): 
    815827        self.lines.append("%sreg%d[reg%d] = reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     828 
    816829    def _pythonsource_dispatch_updatedict(self, opcode): 
    817830        self.lines.append("%sreg%d.update(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     831 
    818832    def _pythonsource_dispatch_loadvar(self, opcode): 
    819833        self.lines.append("%sreg%d = variables[%r]" % (self.indent, opcode.r1, opcode.arg)) 
     834 
    820835    def _pythonsource_dispatch_storevar(self, opcode): 
    821836        self.lines.append("%svariables[%r] = reg%d" % (self.indent, opcode.arg, opcode.r1)) 
     837 
    822838    def _pythonsource_dispatch_addvar(self, opcode): 
    823839        self.lines.append("%svariables[%r] += reg%d" % (self.indent, opcode.arg, opcode.r1)) 
     840 
    824841    def _pythonsource_dispatch_subvar(self, opcode): 
    825842        self.lines.append("%svariables[%r] -= reg%d" % (self.indent, opcode.arg, opcode.r1)) 
     843 
    826844    def _pythonsource_dispatch_mulvar(self, opcode): 
    827845        self.lines.append("%svariables[%r] *= reg%d" % (self.indent, opcode.arg, opcode.r1)) 
     846 
    828847    def _pythonsource_dispatch_truedivvar(self, opcode): 
    829848        self.lines.append("%svariables[%r] /= reg%d" % (self.indent, opcode.arg, opcode.r1)) 
     849 
    830850    def _pythonsource_dispatch_floordivvar(self, opcode): 
    831851        self.lines.append("%svariables[%r] //= reg%d" % (self.indent, opcode.arg, opcode.r1)) 
     852 
    832853    def _pythonsource_dispatch_modvar(self, opcode): 
    833854        self.lines.append("%svariables[%r] %%= reg%d" % (self.indent, opcode.arg, opcode.r1)) 
     855 
    834856    def _pythonsource_dispatch_delvar(self, opcode): 
    835857        self.lines.append("%sdel variables[%r]" % (self.indent, opcode.arg)) 
     858 
    836859    def _pythonsource_dispatch_getattr(self, opcode): 
    837860        self.lines.append("%sreg%d = reg%d[%r]" % (self.indent, opcode.r1, opcode.r2, opcode.arg)) 
     861 
    838862    def _pythonsource_dispatch_getitem(self, opcode): 
    839863        self.lines.append("%sreg%d = reg%d[reg%d]" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     864 
    840865    def _pythonsource_dispatch_getslice12(self, opcode): 
    841866        self.lines.append("%sreg%d = reg%d[reg%d:reg%d]" % (self.indent, opcode.r1, opcode.r2, opcode.r3, opcode.r4)) 
     867 
    842868    def _pythonsource_dispatch_getslice1(self, opcode): 
    843869        self.lines.append("%sreg%d = reg%d[reg%d:]" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     870 
    844871    def _pythonsource_dispatch_getslice2(self, opcode): 
    845872        self.lines.append("%sreg%d = reg%d[:reg%d]" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     873 
    846874    def _pythonsource_dispatch_print(self, opcode): 
    847875        self.lines.append("%sif reg%d is not None: yield unicode(reg%d)" % (self.indent, opcode.r1, opcode.r1)) 
     876 
    848877    def _pythonsource_dispatch_printx(self, opcode): 
    849878        self.lines.append("%sif reg%d is not None: yield xmlescape(unicode(reg%d))" % (self.indent, opcode.r1, opcode.r1)) 
     879 
    850880    def _pythonsource_dispatch_for(self, opcode): 
    851881        self.lines.append("%sfor reg%d in reg%d:" % (self.indent, opcode.r1, opcode.r2)) 
    852882        self.indent += "\t" 
     883 
    853884    def _pythonsource_dispatch_endfor(self, opcode): 
    854885        # we don't have to check for empty loops here, as a ``<?for?>`` tag always generates at least one ``storevar`` opcode inside the loop 
    855886        self.indent = self.indent[:-1] 
    856887        self.lines.append("%s# end for" % self.indent) 
     888 
    857889    def _pythonsource_dispatch_break(self, opcode): 
    858890        self.lines.append("%sbreak" % self.indent) 
     891 
    859892    def _pythonsource_dispatch_continue(self, opcode): 
    860893        self.lines.append("%scontinue" % self.indent) 
     894 
    861895    def _pythonsource_dispatch_not(self, opcode): 
    862896        self.lines.append("%sreg%d = not reg%d" % (self.indent, opcode.r1, opcode.r2)) 
     897 
    863898    def _pythonsource_dispatch_neg(self, opcode): 
    864899        self.lines.append("%sreg%d = -reg%d" % (self.indent, opcode.r1, opcode.r2)) 
     900 
    865901    def _pythonsource_dispatch_contains(self, opcode): 
    866902        self.lines.append("%sreg%d = reg%d in reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     903 
    867904    def _pythonsource_dispatch_notcontains(self, opcode): 
    868905        self.lines.append("%sreg%d = reg%d not in reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     906 
    869907    def _pythonsource_dispatch_eq(self, opcode): 
    870908        self.lines.append("%sreg%d = reg%d == reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     909 
    871910    def _pythonsource_dispatch_ne(self, opcode): 
    872911        self.lines.append("%sreg%d = reg%d != reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     912 
    873913    def _pythonsource_dispatch_lt(self, opcode): 
    874914        self.lines.append("%sreg%d = reg%d < reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     915 
    875916    def _pythonsource_dispatch_le(self, opcode): 
    876917        self.lines.append("%sreg%d = reg%d <= reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     918 
    877919    def _pythonsource_dispatch_gt(self, opcode): 
    878920        self.lines.append("%sreg%d = reg%d > reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     921 
    879922    def _pythonsource_dispatch_ge(self, opcode): 
    880923        self.lines.append("%sreg%d = reg%d >= reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     924 
    881925    def _pythonsource_dispatch_add(self, opcode): 
    882926        self.lines.append("%sreg%d = reg%d + reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     927 
    883928    def _pythonsource_dispatch_sub(self, opcode): 
    884929        self.lines.append("%sreg%d = reg%d - reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     930 
    885931    def _pythonsource_dispatch_mul(self, opcode): 
    886932        self.lines.append("%sreg%d = reg%d * reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     933 
    887934    def _pythonsource_dispatch_floordiv(self, opcode): 
    888935        self.lines.append("%sreg%d = reg%d // reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     936 
    889937    def _pythonsource_dispatch_truediv(self, opcode): 
    890938        self.lines.append("%sreg%d = reg%d / reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     939 
    891940    def _pythonsource_dispatch_and(self, opcode): 
    892941        self.lines.append("%sreg%d = reg%d and reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     942 
    893943    def _pythonsource_dispatch_or(self, opcode): 
    894944        self.lines.append("%sreg%d = reg%d or reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     945 
    895946    def _pythonsource_dispatch_mod(self, opcode): 
    896947        self.lines.append("%sreg%d = reg%d %% reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     948 
    897949    def _pythonsource_dispatch_mod(self, opcode): 
    898950        self.lines.append("%sreg%d = reg%d %% reg%d" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     951 
    899952    def _pythonsource_dispatch_callfunc0(self, opcode): 
    900953        try: 
     
    902955        except AttributeError: 
    903956            raise UnknownFunctionError(opcode.arg) 
     957 
    904958    def _pythonsource_dispatch_callfunc1(self, opcode): 
    905959        try: 
     
    907961        except AttributeError: 
    908962            raise UnknownFunctionError(opcode.arg) 
     963 
    909964    def _pythonsource_dispatch_callfunc2(self, opcode): 
    910965        try: 
     
    912967        except AttributeError: 
    913968            raise UnknownFunctionError(opcode.arg) 
     969 
    914970    def _pythonsource_dispatch_callfunc3(self, opcode): 
    915971        try: 
     
    917973        except AttributeError: 
    918974            raise UnknownFunctionError(opcode.arg) 
     975 
    919976    def _pythonsource_dispatch_callfunc4(self, opcode): 
    920977        try: 
     
    922979        except AttributeError: 
    923980            raise UnknownFunctionError(opcode.arg) 
     981 
    924982    def _pythonsource_dispatch_callmeth0(self, opcode): 
    925983        if opcode.arg in ("split", "rsplit", "strip", "lstrip", "rstrip", "upper", "lower", "capitalize", "isoformat", "r", "g", "b", "a", "hls", "hlsa", "hsv", "hsva", "lum"): 
     
    929987        else: 
    930988            raise UnknownMethodError(opcode.arg) 
     989 
    931990    def _pythonsource_dispatch_callmeth1(self, opcode): 
    932991        if opcode.arg in ("split", "rsplit", "strip", "lstrip", "rstrip", "startswith", "endswith", "find", "get", "withlum", "witha"): 
     
    936995        else: 
    937996            raise UnknownMethodError(opcode.arg) 
     997 
    938998    def _pythonsource_dispatch_callmeth2(self, opcode): 
    939999        if opcode.arg in ("split", "rsplit", "find", "replace", "get"): 
     
    9411001        else: 
    9421002            raise UnknownMethodError(opcode.arg) 
     1003 
    9431004    def _pythonsource_dispatch_callmeth3(self, opcode): 
    9441005        if opcode.arg == "find": 
     
    9461007        else: 
    9471008            raise UnknownMethodError(opcode.arg) 
     1009 
    9481010    def _pythonsource_dispatch_if(self, opcode): 
    9491011        self.lines.append("%sif reg%d:" % (self.indent, opcode.r1)) 
    9501012        self.indent += "\t" 
     1013 
    9511014    def _pythonsource_dispatch_else(self, opcode): 
    9521015        if self.lastopcode == "if": 
     
    9551018        self.lines.append("%selse:" % self.indent) 
    9561019        self.indent += "\t" 
     1020 
    9571021    def _pythonsource_dispatch_endif(self, opcode): 
    9581022        if self.lastopcode in ("if", "else"): 
     
    9601024        self.indent = self.indent[:-1] 
    9611025        self.lines.append("%s# end if" % self.indent) 
     1026 
    9621027    def _pythonsource_dispatch_render(self, opcode): 
    9631028        self.lines.append('%sfor chunk in reg%d(**dict((key.encode("utf-8"), value) for (key, value) in reg%d.iteritems())): yield chunk' % (self.indent, opcode.r1, opcode.r2)) 
     1029 
    9641030    def _pythonsource_dispatch_callfunc0_now(self, opcode): 
    9651031        self.lines.append("%sreg%d = datetime.datetime.now()" % (self.indent, opcode.r1)) 
     1032 
    9661033    def _pythonsource_dispatch_callfunc0_vars(self, opcode): 
    9671034        self.lines.append("%sreg%d = variables" % (self.indent, opcode.r1)) 
     1035 
    9681036    def _pythonsource_dispatch_callfunc1_xmlescape(self, opcode): 
    9691037        self.lines.append("%sreg%d = xmlescape(unicode(reg%d)) if reg%d is not None else u''" % (self.indent, opcode.r1, opcode.r2, opcode.r2)) 
     1038 
    9701039    def _pythonsource_dispatch_callfunc1_csv(self, opcode): 
    9711040        self.lines.append("%sreg%d = ul4c._csv(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1041 
    9721042    def _pythonsource_dispatch_callfunc1_json(self, opcode): 
    9731043        self.lines.append("%sreg%d = json.dumps(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1044 
    9741045    def _pythonsource_dispatch_callfunc1_str(self, opcode): 
    9751046        self.lines.append("%sreg%d = unicode(reg%d) if reg%d is not None else u''" % (self.indent, opcode.r1, opcode.r2, opcode.r2)) 
     1047 
    9761048    def _pythonsource_dispatch_callfunc1_int(self, opcode): 
    9771049        self.lines.append("%sreg%d = int(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1050 
    9781051    def _pythonsource_dispatch_callfunc1_bool(self, opcode): 
    9791052        self.lines.append("%sreg%d = bool(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1053 
    9801054    def _pythonsource_dispatch_callfunc1_len(self, opcode): 
    9811055        self.lines.append("%sreg%d = len(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1056 
    9821057    def _pythonsource_dispatch_callfunc1_enumerate(self, opcode): 
    9831058        self.lines.append("%sreg%d = enumerate(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1059 
    9841060    def _pythonsource_dispatch_callfunc1_isnone(self, opcode): 
    9851061        self.lines.append("%sreg%d = reg%d is None" % (self.indent, opcode.r1, opcode.r2)) 
     1062 
    9861063    def _pythonsource_dispatch_callfunc1_isstr(self, opcode): 
    9871064        self.lines.append("%sreg%d = isinstance(reg%d, basestring)" % (self.indent, opcode.r1, opcode.r2)) 
     1065 
    9881066    def _pythonsource_dispatch_callfunc1_isint(self, opcode): 
    9891067        self.lines.append("%sreg%d = isinstance(reg%d, (int, long)) and not isinstance(reg%d, bool)" % (self.indent, opcode.r1, opcode.r2, opcode.r2)) 
     1068 
    9901069    def _pythonsource_dispatch_callfunc1_isfloat(self, opcode): 
    9911070        self.lines.append("%sreg%d = isinstance(reg%d, float)" % (self.indent, opcode.r1, opcode.r2)) 
     1071 
    9921072    def _pythonsource_dispatch_callfunc1_isbool(self, opcode): 
    9931073        self.lines.append("%sreg%d = isinstance(reg%d, bool)" % (self.indent, opcode.r1, opcode.r2)) 
     1074 
    9941075    def _pythonsource_dispatch_callfunc1_isdate(self, opcode): 
    9951076        self.lines.append("%sreg%d = isinstance(reg%d, datetime.datetime)" % (self.indent, opcode.r1, opcode.r2)) 
     1077 
    9961078    def _pythonsource_dispatch_callfunc1_islist(self, opcode): 
    9971079        self.lines.append("%sreg%d = isinstance(reg%d, (list, tuple))" % (self.indent, opcode.r1, opcode.r2)) 
     1080 
    9981081    def _pythonsource_dispatch_callfunc1_isdict(self, opcode): 
    9991082        self.lines.append("%sreg%d = isinstance(reg%d, dict)" % (self.indent, opcode.r1, opcode.r2)) 
     1083 
    10001084    def _pythonsource_dispatch_callfunc1_istemplate(self, opcode): 
    10011085        self.lines.append("%sreg%d = hasattr(reg%d, '__call__')" % (self.indent, opcode.r1, opcode.r2)) # this supports normal generators too 
     1086 
    10021087    def _pythonsource_dispatch_callfunc1_repr(self, opcode): 
    10031088        self.lines.append("%sreg%d = ul4c._repr(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1089 
    10041090    def _pythonsource_dispatch_callfunc1_get(self, opcode): 
    10051091        self.lines.append("%sreg%d = variables.get(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1092 
    10061093    def _pythonsource_dispatch_callfunc1_chr(self, opcode): 
    10071094        self.lines.append("%sreg%d = unichr(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1095 
    10081096    def _pythonsource_dispatch_callfunc1_ord(self, opcode): 
    10091097        self.lines.append("%sreg%d = ord(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1098 
    10101099    def _pythonsource_dispatch_callfunc1_hex(self, opcode): 
    10111100        self.lines.append("%sreg%d = hex(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1101 
    10121102    def _pythonsource_dispatch_callfunc1_oct(self, opcode): 
    10131103        self.lines.append("%sreg%d = ul4c._oct(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1104 
    10141105    def _pythonsource_dispatch_callfunc1_bin(self, opcode): 
    10151106        self.lines.append("%sreg%d = ul4c._bin(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1107 
    10161108    def _pythonsource_dispatch_callfunc1_sorted(self, opcode): 
    10171109        self.lines.append("%sreg%d = sorted(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1110 
    10181111    def _pythonsource_dispatch_callfunc1_range(self, opcode): 
    10191112        self.lines.append("%sreg%d = xrange(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1113 
    10201114    def _pythonsource_dispatch_callfunc1_type(self, opcode): 
    10211115        self.lines.append("%sreg%d = ul4c._type(reg%d)" % (self.indent, opcode.r1, opcode.r2)) 
     1116 
    10221117    def _pythonsource_dispatch_callfunc2_range(self, opcode): 
    10231118        self.lines.append("%sreg%d = xrange(reg%d, reg%d)" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     1119 
    10241120    def _pythonsource_dispatch_callfunc2_get(self, opcode): 
    10251121        self.lines.append("%sreg%d = variables.get(reg%d, reg%d)" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     1122 
    10261123    def _pythonsource_dispatch_callfunc2_zip(self, opcode): 
    10271124        self.lines.append("%sreg%d = itertools.izip(reg%d, reg%d)" % (self.indent, opcode.r1, opcode.r2, opcode.r3)) 
     1125 
    10281126    def _pythonsource_dispatch_callfunc3_range(self, opcode): 
    10291127        self.lines.append("%sreg%d = xrange(reg%d, reg%d, reg%d)" % (self.indent, opcode.r1, opcode.r2, opcode.r3, opcode.r4)) 
     1128 
    10301129    def _pythonsource_dispatch_callfunc3_zip(self, opcode): 
    10311130        self.lines.append("%sreg%d = itertools.izip(reg%d, reg%d, reg%d)" % (self.indent, opcode.r1, opcode.r2, opcode.r3, opcode.r4)) 
     1131 
    10321132    def _pythonsource_dispatch_callfunc3_rgb(self, opcode): 
    10331133        self.lines.append("%sreg%d = color.Color.fromrgb(reg%d, reg%d, reg%d)" % (self.indent, opcode.r1, opcode.r2, opcode.r3, opcode.r4)) 
     1134 
    10341135    def _pythonsource_dispatch_callfunc3_hls(self, opcode): 
    10351136        self.lines.append("%sreg%d = color.Color.fromhls(reg%d, reg%d, reg%d)" % (self.indent, opcode.r1, opcode.r2, opcode.r3, opcode.r4)) 
     1137 
    10361138    def _pythonsource_dispatch_callfunc3_hsv(self, opcode): 
    10371139        self.lines.append("%sreg%d = color.Color.fromhsv(reg%d, reg%d, reg%d)" % (self.indent, opcode.r1, opcode.r2, opcode.r3, opcode.r4)) 
     1140 
    10381141    def _pythonsource_dispatch_callfunc4_rgb(self, opcode): 
    10391142        self.lines.append("%sreg%d = color.Color.fromrgb(reg%d, reg%d, reg%d, reg%d)" % (self.indent, opcode.r1, opcode.r2, opcode.r3, opcode.r4, opcode.r5)) 
     1143 
    10401144    def _pythonsource_dispatch_callfunc4_hls(self, opcode): 
    10411145        self.lines.append("%sreg%d = color.Color.fromhls(reg%d, reg%d, reg%d, reg%d)" % (self.indent, opcode.r1, opcode.r2, opcode.r3, opcode.r4, opcode.r5)) 
     1146 
    10421147    def _pythonsource_dispatch_callfunc4_hsv(self, opcode): 
    10431148        self.lines.append("%sreg%d = color.Color.fromhsv(reg%d, reg%d, reg%d, reg%d)" % (self.indent, opcode.r1, opcode.r2, opcode.r3, opcode.r4, opcode.r5))