Ich sah an mehreren Stellen, dass Microsoft Aufrufkonventionen für x64
Plattformen auf nur einen eingegrenzt wurden: Caller cleans stack (cdecl
), und Parameter werden in einer Kombination aus Stack und Registern übergeben (ich gehe nicht in die genauen Details hier). Ich nehme an, dass, wenn dies die Aufrufkonvention des Betriebssystems ist, wahrscheinlich auch alle anderen Compiler, die auf Windows abzielen (z. B. mingw-w64), diesem folgen.Aufrufkonvention auf x64
Stimmt diese Aufrufkonvention auch auf anderen wichtigen Plattformen (x64
Linux usw.)? Oder verwendet Linux immer noch mehrere Aufrufkonventionen oder auch nur eine, aber eine andere? Erlauben GCC
oder Clang
mehrere Aufrufkonventionen auf x64
Linux?
Diese glücklichen Tage sind kurz vor dem Ende. Microsoft fügt die Aufrufkonvention __vectorcall hinzu. Bis zu sechs '__m128'-Werte wurden durch SSE2-Register geleitet. –