CbC側からCに復帰する部分なんですが、まぁ、setjmp/longjmp で良いわけで、要らないという意見も。
理論的には、たんにreturnするので良いはずだったり。まぁ、つじつま合わせではある。
GCCでは nested function 使ってるんですが、LLVMにはそれはない。sp/fp をいじれば良いだけなんだが、
GCC/LLVMとも「frame pointerなし」ってのをやりたかったらしく、直接 fp に触れない。なので、
LLVMでは諦めて、setjmp 呼び出した
んですが、setjmp.h を読み込むのはあれなので、builtin_setjmp にしたという流れ。そこで、
Aarch64 の builtin_setjmp は実装されてない
ってのはあんまりだと思うんですけどね。たぶん、既に実装はされてるんだが、なんかの問題があるんだろうな。
いろいろ選択肢はあって、
1) Aarch64 の builtin_setjmp を実装する
2) setjmp.h 使えば良いので、仕様から落とす
まぁ、後者が楽ではあるんだが...
No comments:
Post a Comment