[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

[MD:863]CCL coding system on Meadow.



Miyashita Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxxxxxxxxxxxxxxxx> writes:

> ExCCLはまだ使ってないけど、(あれはもうちょっとmucs-cclを改良しないと
> 使いにくい;_;) こんなサボったもの作ってみました。どうでしょうか
> 
> とりあえず、decoderだけ。
> 
> でも、まだまだ最適化できる。

CCLを速くする方法ですけど、まあ、半田さんによると、
とにかく長さを短くすることとのことですが、私自身は次のような
感想を持っています。

1... 余計なJumpをいれない。(repeat)はjumpが増える。

2... Expressionを圧縮してもちっとも速くならない。

3... READ/WRITEはできるだけまとめる。write-repeatを使う。
     read-multibyte-characterは得に効果的 ^^;;

from himi

いくつかミスってました。

> (define-ccl-program ew-ccl-decode-b-2
>   `(1
>     (loop
>      (read r1 r2 r3 r4)
>      (r0 = r1 ,ccl-b64-array)
>      (r0 = (r0 << 6))
>      (r1 = r2 ,ccl-b64-array)
>      (r0 = ((r1 | r0) << 6))
>      (r1 = r3 ,ccl-b64-array)
>      (r0 = ((r1 | r0) << 6))
>      (r1 = r4 ,ccl-b64-array)
>      (r0 = (r4 | r0))
>      (write (r0 >> 16))
>      (if (r3 == -2)
> 	 ((end))
>        ((write ((r0 >> 8) & ?\xff))
       ((write (r0 >8 0))

> 	(if (r3 == -2)

 	(if (r4 == -2)

> 	    ((end))
> 	 ((r1 = (r0 & ?\xff))
> 	  (write-repeat r1))))))))