2

ソースコードは次のとおりです: https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=sysdeps/unix/sysv/linux/x86_64/getcontext.S;hb=HEAD https:// sourceware.org/git/?p=glibc.git;a=blob_plain;f=sysdeps/x86_64/setjmp.S;hb=HEAD

ご覧のとおり、getcontext は浮動小数点コンテキストも保存し、r8 と r9 を登録しますが、setjmp は保存しません。これの理由は何ですか?

4

1 に答える 1

1

両方のルーチンが間違っているようです。setjmp は浮動小数点の状態を無視すべきではなく、getcontext は r8、r9 を保存すべきではありません。

参照:

http://www.boost.org/doc/libs/1_57_0/libs/context/doc/html/context/rationale/x86_and_floating_point_env.html

于 2014-11-22T23:20:36.540 に答える