タグ

fastcallに関するmogwaingのブックマーク (3)

  • gccのfastcall関数呼び出しについて : no hacking, no life

    背景 最近、前職の友達や後輩、またその後輩の会社の方々などで「Linuxカーネル勉強会」なるものをはじめました。勉強会といっても読書会に近く、「Linuxカーネル解読室」というを使っての勉強会で、この前早速第1回があり、第1章の「プロセススケジューリング」について行いました。 みんなで議論などをして、書かれてることは大体理解できましたが、やはり前提知識がたくさん必要などの理由から不明な所が何点かあったので、その一つについて調べてみました。 (以降の説明はlinux kernel 2.6.15(x86)を元にしています。) わからなかった事 そのわからなかった事について説明します。 以下は、Linuxカーネルが行うコンテキススイッチの部分の核となるswitch_to というマクロです。 include/asm-i386/system.h #define switch_to(prev,n

  • 第9回 C の関数との連携

    前のページ | 目次 | 次のページ 今回の内容 前回サブルーチンの呼び出しをやったので、今回はその応用として C の関数との連携をやります。この辺は処理系に依存するので、Windows の場合に限って話を進めます。 呼び出し規約 まず、C の呼び出し規約は3種類あります。VC++ の名前で言うと __cdecl, __stdcall, __fastcall です。VC++ では普段使われているのが __cdecl で、DLL などで使う WINAPI は __stdcall に define されています。__fastcall は普通使われていないようです。また、C++ のメンバ関数呼び出し用の規約として thiscall というのもあります。 まず、全ての規約の概略を説明しましょう。引数はスタックに push して渡します。32bit 以下の引数は全て 32bit に拡張されてスタック

  • fastcall呼び出し規約 - 草原をわたるそよ風の音

    fastcall呼び出し規約 コメント fastcall呼び出し規約最初の2つを ECX, EDX におく呼び出し方。3つ目以降は __stdcall と同じようにスタックに。 コメント お名前: コメント: [カテゴリ:Binary2.0]

  • 1