From: Hajimu UMEMOTO Date: 2006-01-22T14:53:43+09:00 Subject: [ruby-dev:28266] Re: FUNCTION_CALL_MAY_RETURN_TWICE 梅本です。 >>>>> On Sun, 22 Jan 2006 05:38:09 +0900 >>>>> Tanaka Akira said: akr> In article <87zmlph0xx.fsf@m17n.org>, akr> Tanaka Akira writes: > というわけで、carry flag が 1 になっているのがなぜか、という > 話なんですが、さて? akr> そっか、carry flag が 1 なのは、getcontext で保存する時に 1 akr> だったからですね。 ううむ、そういうことなのか。 akr> http://www.freebsd.org/cgi/query-pr.cgi?pr=92110 に送ってお akr> きました。 どうもありがとうございます。 akr> それはそれとして、getcontext の前で 0 にしておけばごまかせる akr> わけで、次のようにしてみるとどうでしょう? AMD64 でも問題が収まるとこを確認できました。 akr> FUNCTION_CALL_MAY_RETURN_TWICE を getcontext の前で呼ぶと直 akr> るのは、(0 ? setjmp() : 0) の真偽判定で carry flag が 0 にな akr> るから、ですかね。 そういうことになるのでしょうね。なるほど。 -- 梅本 肇 @ インターネット互助会横浜 http://www.imasy.org/~ume/ ume@mahoroba.org ume@{,jp.}FreeBSD.org プログラムは書いた人の意図ではなく書かれた通り動く I hate Modula-3 :-)