gccに関するnigakyのブックマーク (2)

  • x86_64 Assembly Language Programming

    レジスタの使い方は次の通りです. レジスタ用途保存 rax戻り値不要 rcx1番目の整数型引数不要 rdx2番目の整数型引数不要 r83番目の整数型引数不要 r94番目の整数型引数不要 r10, r11-必要なら呼び出し元(caller)で保存 r12〜r15, rdi, rsi, rbx, rbp, rsp-必要なら呼び出し側(callee)で保存 xm01番目の浮動小数型引数 / 戻り値不要 xm12番目の浮動小数型引数不要 xm23番目の浮動小数型引数不要 xm34番目の浮動小数型引数不要 xm4, xm5-必要なら呼び出し元(caller)で保存 xm6〜xm15-必要なら呼び出し側(callee)で保存 スタックは常に16byteアラインメントされています. ただし関数呼び出し直後は戻りアドレス(8byte)がpushされているため, 8(mod 1

    nigaky
    nigaky 2013/06/11
  • GCC some extensions

    gcc(Gnu C Compiler)の拡張文法 [警告!] C/C++言語初心者はこのページを読まないでください。 このページではgcc独自のC/C++拡張文法について解説します。 これらの拡張文法が可能にする機構は確かに便利なのですが、 もちろんANSI規格に従っていないので、一般的には使うべきではありません。 C/C++言語文法を学び始めている初心者はこれらgcc拡張文法を 知るべきではありません。C/C++言語を正しく理解する上で大きな 支障となります。 C/C++言語を十分に熟知した者は、gccがこのようなこともすることを 「雑談」として知っておくと楽しいかもしれません。もちろん 実戦に使うべきではありませんが。しかし初心者が偶然に、これらの 機能を使ってうまくいく場合がありますので、そのような初心者を 見つけたら、それが標準規格ではないことを注意してください。 配列変数をコピー

  • 1