[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:863]CCL coding system on Meadow.
- X-ml-count: 863
- Subject: [MD:863]CCL coding system on Meadow.
- From: Miyashita Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 25 Aug 1998 09:28:03 +0900
- X-mailer: Semi-gnus 6.0.4 (based on Quassia Gnus v0.23)
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))))))))