Mac の方の環境を 10.10 Yosemite + Xcode 7.2 から 10.12 Sierra + Xcode 8.2 に更新したんですが、SDK に macOS 10.12 SDK を指定したら QuickTime 関連のヘッダファイルがありません。

Read the rest of this entry

GCC のインラインアセンブラでは出力 (output operands) リスト、入力 (input operands) リストの他に、アセンブラブロックの中でどのレジスタが破壊されるか(つまり、どのレジスタをコンパイラ側で復元しなければいけないか)を指定する 破壊 (clobber) リストを指定することができます。

Read the rest of this entry

主語を大きく取りすぎている可能性がある(実際に確認したのは「Mac の i386/x86_64 をターゲットとする、Xcode に含まれている Clang のインラインアセンブラ」だけ)のですが、記事タイトル通りのことになります。

Read the rest of this entry

その2の続き

Intel 記法と Input Operand (の一部の制約)は併用できないわけですが、手持ちのソースを AT&T 記法に変換するのもチョー大変なので別の方法を。

Read the rest of this entry

同一 asm 句内に定義がある場合はいいのですが、別の asm 句に定義があると処理できません。

Read the rest of this entry

その1の続き

一つ重要なテストを忘れていました。 Extended Asm の Input Operand です。

Read the rest of this entry

Unix の ld コマンド(GNU の ld コマンド固有かもしれないけど)には --whole-archive というオプションがあって、スタティックライブラリの中のオブジェクトファイルを、どこからも参照されていなくても出力ファイルに含めることができます。これは、スタティックライブラリをシェアードライブラリに変換する手法としても知られています。

で、Visual C++ の場合に同様のことをやる方法ですが、バージョンによってちょっと違います。

Read the rest of this entry

性能向上
  • UQY2, UQRG, UQRA: エンコードを高速化した。

Read the rest of this entry

2017年01月にいただいた寄付は以下の1件です。ありがとうございました。

日付 お名前 金額
01/14 Jean-Philippe Scotto Di Rinaldi 3,000円

なんでフランスから円建てで来てるんだろう…と思ったけど、ユーロ圏(というか日本円でも米ドルでもない)の人だとドル経由にするより直接円にした方がいいという判断は間違いではないのかも。

なお、2016年11月から12月には寄付はありませんでした。

結論から言うと、インラインアセンブラ部分の先頭に .intel_syntax noprefix と書く(だけ)。 -masm=intel オプションは付けなくてもいいが、GCC との互換性を考えると付けるべき、となります。(Clang しか考えないなら付けなくてもいい)。

以下経過と詳細な挙動。環境は CentOS 7 + Clang 3.5.2 です。

Read the rest of this entry