ブラウザ上で JIT して実行する場合、生成されたコードも当然 verification をしてもらわないといけない
nacl_dyncode_create という API で生成したコードを verifier にかけた後で実行属性をつけてもらう
コード生成部分を書きかえて、 NaCl verifier が怒らない安全なバイナリを生成する必要がある
基本そこらじゅうに nop を入れまくるだけだけど、 TCC のコード生成部分はたいへん男らしいので割とめんどくさい
gp(9); // これらをまとめて padding しないとダメ g(0x0f); // とりあえず 0x0f を emit t = psym(0x85 ^ inv, t); // 残りはこっち
psym 内で padding するだけでできればラクなんですけどね
https://github.com/shinh/nacltcc/commit/6b788b18b22e7d534c3eeef4c2938e8ec07a8542