Path: news.ccsf.jp!news.tomockey.net!feeder.erje.net!1.eu.feeder.erje.net!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: YAMAGUTIseisei Newsgroups: tw.bbs.comp.sources,japan.comp.firmware Subject: jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_7_1_0_0_1__1001710200.rb Followup-To: tw.bbs.edu.computer-science,fj.soc.war-and-peace,hk.comp,cn.sci Date: Sun, 01 Oct 2017 12:15:57 +0000 Organization: http://yahoo.jp/UUNk3s?#Sponsor_-_CellBE Lines: 615 Message-ID: <59D0DC7D.8010704@x68k.net> References: <54C4B4E9.4080503@hello.to> <54D7DCBA.9080004@hello.to> <54E0B1C1.4000206@hello.to> <54E0B96A.2090205@hello.to> <54E9FF02.8090302@hello.to> <54F326E9.3010908@hello.to> <54FC6769.6090605@hello.to> <550DC230.7030303@hello.to> <5516EBEE.8040901@hello.to> <551A2704.4020109@hello.to> <5529692E.4060609@hello.to> <552D3439.3090107@hello.to> <5534B697.2000800@hello.to> <5545F912.9020803@hello.to> <5550CDAB.8040405@hello.to> <5558C89B.4050103@hello.to> <5561E704.9000208@hello.to> <55645EAA.9040304@hello.to> <55745BE2.5000100@hello.to> <55ACFE56.7040602@hello.to> <55E2830C.9070303@hello.to> <55EBB467.40803@hello.to> <55F4C0BC.5050308@hello.to> <560130D5.4030103@hello.to> <560131AA.9080804@hello.to> <56238C37.5020506@hello.to> <56332C2C.80904@x68k.net> <56360E57.2090200@hello.to> <57CC1CA9.5000107@hello.to> <5954F13B.3030107@hello.to> <59892D82.4060203@hello.to> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Injection-Info: reader02.eternal-september.org; posting-host="8fe0a2382ebb2a184f9fe77619e03b74"; logging-data="8612"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+d7EHpVA6VekeRvWWRjNeW" User-Agent: Mozilla/5.0 (BeOS; U; BeOS BePC; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: ja, en-us Cancel-Lock: sha1:LtZknn6B7vpdGK9p/2ASC50zhKI= Xref: news.ccsf.jp japan.comp.firmware:119 33d32 < # when ?r then '[]' == vs[0] + vs[-1] # , Array # q 37d35 < # @@ks |= (0 .. 9).to_a.join + ?- # * '' higokan mruby 70410200 # ?0.upto # higokan mruby 70410200 # 7221410200 6ccae658 suzukaze # q 39d36 < # ) + ?i == k ? '' : ?. # q 2 41c38,39 < vs.each_byte { |c| s.include?(c) || break} --- > # vs.each_byte { |c| s.include?(c) || break} > vs.all? { |c| s.include?(c)} 195c193,194 < def ta(ta, cop) [ta.shift || 'getarg_a', ta.shift || cop][0 .. ta.pop || 1] end --- > # def ta(ta, cop) [ta.shift || 'getarg_a', ta.shift || cop][0 .. ta.pop || 1] end > def ta(l, cop) [l.shift || 'getarg_a', l.shift || cop][0 .. l.pop || 1] end 218d216 < # def s__r1_eq_sr01(*a) a[@@I_s__s][ a[@@I_s__r1]] == a[@@I_s__s][a[@@I_s__r0] + 1] end 278,280c276,280 < # 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # http://www.monami-ya.jp/ < self[0] = [['th', 'sym', 'ctr', 'cto'], # mruby 20410200 : higokan ? : ary_many < [[thini], 0, [0], [0]]] # mruby 70410200 : 4x2 ok , 5x2 ng --- > # 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # www.monami-ya.jp > # self[0] = [['th', 'sym', 'ctr', 'cto'], # mruby 20410200 : higokan ? : ary_many > # [[thini], 0, [0], [0]]] # mruby 70410200 : 4x2 ok , 5x2 ng > self[0] = [['th', 'sym', 'ctr'], # mruby 20410200 : higokan ? : ary_many > [[thini], 0, [-1]]] # mruby 70410200 : 4x2 ok , 5x2 ng 292d291 < # Slp.new.slp 0 361a361,369 > > # n >= 0 && p( > # to_ia(n) > ## to_ia(n, pl) > ## Rg.new(to_ia(n)).to_ra > ## Rg.new(to_ia(n)).to_ra('th') > ## rg = Rg.new(to_ia(n)); rg['ctr'] > # ) > 382a391,401 > @@Plmg = ->(pi, pv) {pi.map { |v| [v, pv.shift]}} # l > def to_ia(n, lpl = self) > if 0 == n > # self[n] > @@Plmg.(pl_g(-1), lpl[n][1]) # c > else > # @@Plmg.(pl_g(-1), self[n]) # c > @@Plmg.(pl_g(-1), lpl[n]) # c > end > end > 387c406,411 < (ctr = ctr_r.abs) != cto_r ? (ctr_s(-ctr); cto_s ctr) : -ctr --- > > ## ctr = ctr.abs > ## ctr != cto ? (ctr_s -ctr; cto_s ctr) : -ctr > # (ctr = ctr_r.abs) != cto_r ? (ctr_s -ctr; cto_s ctr) : -ctr > > [ctr = ctr_r, 0 <= ctr && ctr_s(-ctr)][0] 397,399c421,423 < def cto_r < pl_eg('cto')[0] < end --- > # def cto_r > # pl_eg('cto')[0] > # end 406,409c430,433 < def cto_s(cto) < pl_es(0, ['cto', [cto]]) < cto < end --- > # def cto_s(cto) > # pl_es(0, ['cto', [cto]]) > # cto > # end 438c462,463 < def st_id(a, pc) --- > # def st_id(a, pc) > def s_id(a, pc) 442,447d466 < # a.map! { |v| < ### v.kind_of?(Array) ? __send__(v, pc) : v # unwork ( thread ? ) < ## knid(v, :Array) ? __method__(v, pc) : v # unwork ( thread ? ) < ## knid(v, :Array) ? __callee__(v, pc) : v # unwork ( thread ? ) < # knid(v, :Array) ? st_id(v, pc) : v < # case v when Array then st_id(v, pc) else v end 449c468 < ## v.kind_of?(Array) ? __send__(a, pc) : a # unwork ( thread ? ) --- > ## v.kind_of?(Array) ? __send__(a, pc) : a # unwork ( thread ? ) 452,453c471,474 < # knid(a, :Array) ? st_id(a, pc) : a < case a when Array then st_id(a, pc) else a end --- > ## knid(a, :Array) ? st_id(a, pc) : a > # knid(a, :Array) ? s_id(a, pc) : a > # case a when Array then st_id(a, pc) else a end > case a when Array then s_id(a, pc) else a end 455d475 < # return a[0] if 2 > a.size 460d479 < # a.inject { |opc, op| 462d480 < #case opc when Numeric then else 464d481 < # print "#{pc.to_xeh} #{opc} #{op.to_xeh}\n" end 468d484 < # } 482,483c498,501 < th[idx] = st_id(th[idx], pc - 1) ; < #### th[idx] = st_id(th[idx], pc - 1) if ckth(th[idx], 0) # fuguai taisaku --- > # th[idx] = st_id(th[idx], pc - 1) ; > th[idx] = s_id(th[idx], pc - 1) ; > ##### th[idx] = st_id(th[idx], pc - 1) if ckth(th[idx], 0) # fuguai taisaku > #### th[idx] = s_id(th[idx], pc - 1) if ckth(th[idx], 0) # fuguai taisaku 488d505 < # self.pl_es(pc, ['th', th]) 493d509 < # Slp.new.slp 0 495d510 < ## Slp.new.slp(0, 4096) 498,499c513,514 < # idx += f && idx < mx ? 1 : 0 ## < f && idx += idx < mx ? 1 : 0 ## --- > # f && idx += idx < mx ? 1 : 0 ## > f && idx += (mx <=> idx) + 1 >> 1 ## 532d546 < # Slp.new.slp 572d585 < # s[@p.sgp a[0]] 575d587 < # [mloc, @s[@p + a[0].sgp], @@m.unlock][1] 581d592 < # a = @s[@p.sgp a[0]] = a[1] 585d595 < # [mloc, @s[@p + a[0].sgp] = a[1], @@m.unlock][1] 589,592d598 < < # def mloc < # begin @@m.lock; rescue Slp.new.slp(0); retry end < # end 619c625,626 < i ||= @a.assoc('ctr')[1] --- > # i ||= @a.assoc('ctr')[1] > i ||= @a.assoc('ctr')[1] + 1 621d627 < # self[@i] = a[0] 624d629 < # def []=(*a, v) 627c632,633 < i ||= @a.assoc('ctr')[1] --- > # i ||= @a.assoc('ctr')[1] > i ||= @a.assoc('ctr')[1] + 1 670d675 < # (@pl = ENVary.new(rmth + 1, [thini], [], [])).plini 703c708 < r = [r, r.map { |v| lpl.ckth(v, 1)}] --- > # r = [r, r.map { |v| lpl.ckth(v, 1)}] 706c711,712 < r.map! { |v| [v[0], v[-1]]} --- > # r.map! { |v| [v[0], v[-1]]} > r = [r, r.map { |v| lpl.ckth(v, 1)}].map { |v| [v[0], v[-1]]} 733d738 < # sz = 4; ap = (1 << sz) - 1 - 1 735c740,741 < sz -= 2; ap = (ap << sz) + ap + (1 << (sz - 1)) >> sz --- > # sz -= 2; ap = (ap << sz) + ap + (1 << (sz - 1)) >> sz > sz -= 2; ap = ((ap << sz) + ap >> sz - 1) + 1 >> 1 743d748 < # r = (plr[r1] if 0 <= sz && r1 <= sz) || lm.(isr0, r1) # c 749,750c754,755 < # sz.step(sz - 1 + ap -= ap >> 2) { |n| plr<< lm.(isr0, s[n])} # p c < mx = sz - 1 + ap -= ap >> 2 --- > # mx = sz - 1 + ap -= ap >> 2 > mx = sz - 1 + ap = ap - (ap >> 2) & 0x3f 752,753c757,758 < (mx - sz).times { |n| plr<< lm.(isr0, s[n])} # p c < # (mx - sz).times { |n| s[n] && plr<< lm.(isr0, s[n])} # p c --- > # (mx - sz).times { |n| plr<< lm.(isr0, s[n])} # p c > (sz .. mx - 1).each { |n| plr<< lm.(isr0, s[n])} # p c 772d776 < # sz = plr.width 774d777 < # ca[flg.inject(0) { |rv, v| rv <<= 1; rv |= v ? 0 : 1}].call 782c785 < # } ## --- > # } ## 790c793,795 < flg, pl = true --- > # flg, pl = true > > pl = lpl.pl_g(pc) 794c799 < flg ? pl = lpl.pl_g(pc) : pl[i_th] = lpl.pl_eg(pc, 'th') --- > # flg ? pl = lpl.pl_g(pc) : pl[i_th] = lpl.pl_eg(pc, 'th') 799a805,806 > > pl[i_th] = lpl.pl_eg(pc, 'th') 805,806c812,813 < def iset2(rg, thi = 0, th = []) ### < # def iset(rg) ## --- > # def iset2(rg, thi = 0, th = []) ### > def iset(rg) ## 815,819d821 < # printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)]) < # return < # ) < # fmla = fml < 821d822 < # ta = ->(ta) { [ta.shift || 'getarg_a', ta.shift || cop][0 .. ta.pop || 1] } # l 823c824 < # th = [] ## --- > th = [] ## 826,830c827,832 < # fvl = [->(oi) {[fv[oi] = th[oi] = (ta.(fv[oi])), []]}, # l c < # ->(oi) {th += [[fv[oi] && ta.(fv[oi])], []][ # l c < fvl = [->(oi) {[fv[oi] = th[oi] = (imem.ta(fv[oi], cop)), []]}, # l < ->(oi) {th += [[fv[oi] && imem.ta(fv[oi], cop)], []][ # l < ((wd = fv.width) <=> oi) >> 1]}] # .lazy --- > # fvl = [->(oi) {[fv[oi] = th[oi] = (imem.ta(fv[oi], cop)), []]}, # l c > # ->(oi) {th += [[fv[oi] && imem.ta(fv[oi], cop)], []][ # l c > # ((wd = fv.width) <=> oi) >> 1]}] # .lazy > fvl = [->(oi) {th += [[fv[oi] && imem.ta(fv[oi], cop)], []][ # l c > ((wd = fv.width) <=> oi) >> 1]}, > ->(oi) {[fv[oi] = th[oi] = (imem.ta(fv[oi], cop)), []]}] # .lazy # l c 833d834 < # fml = fmla.dup 838d838 < # fv = fml.shift 842,843c842,843 < when 'th' then fv = fvl[oi <=> 0].(oi) # c < # when 'th' then (fv, th, wd) = imem.fvl(oi, th, fv, wd, cop) --- > # when 'th' then fv = fvl[oi <=> 0].(oi) # c > when 'th' then fv = (fvl.delete_at(1) || fvl[0]).(oi) # c 851,852c851,852 < # thi = 0 ## < # k_sp_r = pla.assoc('sp')[1] --- > thi = 0 ## > # thio = thi - 1 854,863c854,867 < # Fiber.new { ## < # loop { ## < opa = opg.(thi) # c < # opa.push(k_sp_r, [sp]) if 0 == thi < opa.push(k_sp, [sp]) if 0 == thi < < pl.pl_es(pc1, opa) < pl.ctr_s(pc1) if 0 == thi < < # Slp.new.slp 0 --- > Fiber.new { ## > loop { ## > if 0 > pl.ctr_r || 0 != thi # && thi != thio > opa = opg.(thi) # c > opa.push(k_sp, [sp]) if 0 == thi > > pl.pl_es(pc1, opa) > > pl.ctr_s(pc1) if 0 == thi > > # thio = thi > if 0 != thi && wd <= thi then thi = -1 end > # if 0 != thi && wd <= thi && 0 < thio then thi = -1 end > end 864a869 > # @@slp.slp 869,882c874,887 < if 0 != thi && wd <= thi then thi = -1 end < [thi + 1, th] ### < # Fiber.yield(thi += 1) ## < # } ## < # } ## < end < < def iset(rg) < thi = 0 < th = [] < < Fiber.new { < loop { < thi, th = iset2(rg, thi, th) --- > # if 0 != thi && wd <= thi then thi = -1; th = [] end > # [thi + 1, th] ### > Fiber.yield(thi += 1) ## > } ## > } ## > end > > # def iset(rg) > # thi = 0 > # th = [] > > # Fiber.new { > # loop { > # thi, th = iset2(rg, thi, th) 884,887c889,892 < Fiber.yield(thi) < } < } < end --- > # Fiber.yield(thi) > # } > # } > # end 919c924,925 < rg = Rg.new([['ctr', 1], ['thi', 0], ['pc', @pc], ['sp', @sp], ['cop'], ['sym']]) --- > # rg = Rg.new([['ctr', 1], ['thi', 0], ['pc', @pc], ['sp', @sp], ['cop'], ['sym']]) > rg = Rg.new([['ctr', 0], ['thi', 0], ['pc', @pc], ['sp', @sp], ['cop'], ['sym']]) 935,937d940 < # rg['cop'] = c < # rg['sym'] = s < # rg['cop'], rg['sym'] = opf(irep, rg['pc']) 956d958 < ##### ise = iset(rg) if 0 == rg['thi'] ## 958d959 < # rg['thi'] = ise.resume ## 962c963,968 < (rg.push('pc', rg['pc']); rg.push('sp', rg['sp'])) if 0 == rg['thi'] ## --- > if 0 <= rg['ctr', 1] && 0 == rg['thi'] > # (rg.push('pc', rg['pc']); rg.push('sp', rg['sp'])) if 0 == rg['thi'] ## > rg.push('pc', rg['pc']) ## > rg.push('sp', rg['sp']) ## > rg['ctr', 1] += 1 > end 965,973c971,975 < # rga.('push', nil, 'pc', rg['pc']) # c < rg.push('pc', rg['pc']) < rg.push('sp', rg['sp']) < rg['ctr', 1] *= -1 # kakezan < < # while ! lpl.ctr_c do Slp.new.slp end < < lpl.plini < @flag[0] = 2 --- > if 0 <= rg['ctr', 1] > rg.push('pc', rg['pc']) > rg.push('sp', rg['sp']) > rg['ctr', 1] *= -1 # kakezan > end 974a977,978 > if 0 == rg['ctr', 1] > # while ! lpl.ctr_c do Slp.new.slp end 976c980,981 < case rg['sym'] --- > lpl.plini > @flag[0] = 2 978,979d982 < # 何もしない < # when :NOP 981,986c984 < # JMP nでpcをnだけ増やす。ただし、nは符号付き < when :JMP < # @pc = @pc + getarg_sbx(cop) < # pc = pc + lpl.getarg_sbx(cop) - 1 < rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) - 1 < # next --- > case rg['sym'] 988,996c986,987 < when :JMPIF < # if @stack[@sp + getarg_a(cop)] then < # if @stack[sp + lpl.getarg_a(cop)] then < if @stack[imem.getarg_a(rg['cop'])] then < # @pc = @pc + getarg_sbx(cop) < # pc = pc + lpl.getarg_sbx(cop) - 1 < rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) - 1 < # next < end --- > # 何もしない > # when :NOP 998,1002c989,990 < # JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き < when :JMPNOT < # if !@stack[@sp + getarg_a(cop)] then < # if !@stack[sp + lpl.getarg_a(cop)] then < if !@stack[imem.getarg_a(rg['cop'])] then --- > # JMP nでpcをnだけ増やす。ただし、nは符号付き > when :JMP 1007d994 < end 1009,1048c996,1004 < # メソッドの先頭で引数のセットアップする命令。面倒なので詳細は省略 < when :ENTER < # rg['pc', -1] = rg['pc'] < < # SEND Ra, mid, anumでRaをレシーバにしてシンボルmidの名前のメソッドを < # 呼び出す。ただし、引数はanum個あり、R(a+1), R(a+2)... R(a+anum)が引数 < when :SEND < # a = getarg_a(cop) < # a = lpl.getarg_a(cop) < a = imem.getarg_a(rg['cop']) < # mid = @irep.syms[getarg_b(cop)] < # mid = irep.syms[lpl.getarg_b(cop)] < mid = irep.syms[imem.getarg_b(rg['cop'])] < # n = getarg_c(cop) < # n = lpl.getarg_c(cop) < n = imem.getarg_c(rg['cop']) < # newirep = Irep::get_irep(@stack[@sp + a], mid) < newirep = Irep::get_irep(@stack[a], mid) < if newirep then < # @callinfo[@cp] = @sp < # @callinfo[@cp] = rg['sp'] < # @cp += 1 < # @callinfo[@cp] = @pc < # @callinfo[@cp] = rg['pc'] < # @cp += 1 < # @callinfo[@cp] = @irep < # @callinfo[@cp] = irep < # @cp += 1 < @callinfo[@cp ... @cp += 3] = [rg['sp'], rg['pc'], irep] < < # @sp += a < # rg['sp'] += a < rg['sp', -1] = rg['sp'] + a < < # @pc = 0 < rg['pc', -1] = -1 < # @irep = newirep < irep = newirep < # @irepid = @irep.id < @irepid = irep.id --- > when :JMPIF > # if @stack[@sp + getarg_a(cop)] then > # if @stack[sp + lpl.getarg_a(cop)] then > if @stack[imem.getarg_a(rg['cop'])] then > # @pc = @pc + getarg_sbx(cop) > # pc = pc + lpl.getarg_sbx(cop) - 1 > rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) - 1 > # next > end 1050,1055c1006,1014 < # next < else < args = [] < n.times do |i| < # args.push @stack[@sp + a + i + 1] < args<< @stack[a + i + 1] # p --- > # JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き > when :JMPNOT > # if !@stack[@sp + getarg_a(cop)] then > # if !@stack[sp + lpl.getarg_a(cop)] then > if !@stack[imem.getarg_a(rg['cop'])] then > # @pc = @pc + getarg_sbx(cop) > # pc = pc + lpl.getarg_sbx(cop) - 1 > rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) - 1 > # next 1058,1060c1017,1065 < # @stack[@sp + a] = @stack[@sp + a].send(mid, *args) < @stack[a] = @stack[a].send(mid, *args) < end --- > # メソッドの先頭で引数のセットアップする命令。面倒なので詳細は省略 > when :ENTER > # rg['pc', -1] = rg['pc'] > > # SEND Ra, mid, anumでRaをレシーバにしてシンボルmidの名前のメソッドを > # 呼び出す。ただし、引数はanum個あり、R(a+1), R(a+2)... R(a+anum)が引数 > when :SEND > # a = getarg_a(cop) > # a = lpl.getarg_a(cop) > a = imem.getarg_a(rg['cop']) > # mid = @irep.syms[getarg_b(cop)] > # mid = irep.syms[lpl.getarg_b(cop)] > mid = irep.syms[imem.getarg_b(rg['cop'])] > # n = getarg_c(cop) > # n = lpl.getarg_c(cop) > n = imem.getarg_c(rg['cop']) > # newirep = Irep::get_irep(@stack[@sp + a], mid) > newirep = Irep::get_irep(@stack[a], mid) > if newirep then > # @callinfo[@cp] = @sp > # @cp += 1 > # @callinfo[@cp] = @pc > # @cp += 1 > # @callinfo[@cp] = @irep > # @cp += 1 > @callinfo[@cp ... @cp += 3] = [rg['sp'], rg['pc'], irep] > > # @sp += a > # rg['sp'] += a > rg['sp', -1] = rg['sp'] + a > > # @pc = 0 > rg['pc', -1] = -1 > # @irep = newirep > irep = newirep > # @irepid = @irep.id > @irepid = irep.id > > # next > else > args = [] > n.times do |i| > # args.push @stack[@sp + a + i + 1] > args<< @stack[a + i + 1] # p > end > > # @stack[@sp + a] = @stack[@sp + a].send(mid, *args) > @stack[a] = @stack[a].send(mid, *args) > end 1062,1085c1067,1094 < # RETURN Raで呼び出し元のメソッドに戻る。Raが戻り値になる < when :RETURN < if @cp == 0 then < # return @stack[@sp + getarg_a(cop)] < # return @stack[sp + lpl.getarg_a(cop)] < return @stack[imem.getarg_a(rg['cop'])] < else < # @stack[@sp] = @stack[@sp + getarg_a(cop)] < # @stack[sp] = @stack[sp + lpl.getarg_a(cop)] < @stack[0] = @stack[imem.getarg_a(rg['cop'])] < @cp -= 1 < # @irep = @callinfo[@cp] < irep = @callinfo[@cp] < # @irepid = @irep.id < @irepid = irep.id < @cp -= 1 < # @pc = @callinfo[@cp] < # pc = @callinfo[@cp] # - 1 < rg['pc', -1] = @callinfo[@cp] # - 1 < @cp -= 1 < # @sp = @callinfo[@cp] < # sp = @callinfo[@cp] < # rg['sp'] = @callinfo[@cp] < rg['sp', -1] = @callinfo[@cp] --- > # RETURN Raで呼び出し元のメソッドに戻る。Raが戻り値になる > when :RETURN > if @cp == 0 then > # return @stack[@sp + getarg_a(cop)] > # return @stack[sp + lpl.getarg_a(cop)] > return @stack[imem.getarg_a(rg['cop'])] > else > # @stack[@sp] = @stack[@sp + getarg_a(cop)] > # @stack[sp] = @stack[sp + lpl.getarg_a(cop)] > @stack[0] = @stack[imem.getarg_a(rg['cop'])] > @cp -= 1 > # @irep = @callinfo[@cp] > irep = @callinfo[@cp] > # @irepid = @irep.id > @irepid = irep.id > @cp -= 1 > # @pc = @callinfo[@cp] > # pc = @callinfo[@cp] - 1 > rg['pc', -1] = @callinfo[@cp] # - 1 > @cp -= 1 > # @sp = @callinfo[@cp] > # sp = @callinfo[@cp] > # rg['sp'] = @callinfo[@cp] > rg['sp', -1] = @callinfo[@cp] > end > # else > # printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)]) > # printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)]) 1087,1089d1095 < # else < # printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)]) < # printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)]) 1091a1098 > rg['ctr', 1] -= 1 if 0 < rg['ctr', 1] 1093a1101,1102 > # rg['ctr', 1] -= 1 if flg[0] > 1102,1103c1111,1112 < < rg['ctr', 1] *= -1 # kakezan --- > @pc = rg['pc'] > # rg['ctr', 1] *= -1 # kakezan 1114d1122 < # Slp.new.slp 0 1117d1124 < # Slp.new.slp -- YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } ) http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104 heiwa furiisekkusu 1tu