3

logやなどの数学関数を含む C ファイルで作業していますexp。C ファイルを GCC でコンパイルして、アセンブリ コードを生成します。アセンブリ コード内では、pow関数が使用されるたびに、C 関数が呼び出されるだけであることがわかります。例えば、

    movsd   xmm0, QWORD PTR 16[rbp]   
    call    log  
    addsd   xmm0, xmm0  
    call    exp  
    movsd   QWORD PTR -8[rbp], xmm0

logC関数を呼び出すだけでなく、およびのアセンブリコードも生成するようにGCCに指示できるかどうか疑問に思っていexpます。言い換えれば、外部関数呼び出しを必要としないアセンブリ コードを生成するように GCC に指示することは可能ですか?

ありがとう、

4

3 に答える 3

1

これが標準的な方法でできるとは思えません。ただし、関数を自分で実装することもできます (または、Paul R が述べた libm ( libcの一部) などの既存のライブラリからコードをコピーすることもできます)。その後、重要なことに、関数をinlineとして宣言します。

于 2013-08-12T21:47:27.063 に答える