这是他们的源代码: 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 没有。这是什么原因?
最佳答案
好像两个套路都不对。 Setjmp 不应忽略浮点状态,getcontext 不应保存 r8、r9。
引用:
关于linux - 为什么getcontext和setjmp在glibc-x86-64中保存不同的寄存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27038383/