Действительно ли FPC nostackframe
и директива Delphi .NOFRAME
точно эквивалентны в 64-битных asm-функциях?Голые 64-битные функции asm в Delphi и FPC
Другими словами делает следующий код шаблона
procedure Naked(SomeArg: Integer);{$IFDEF FPC}nostackframe;{$ENDIF}
asm
{$IFNDEF FPC}
.NOFRAME
{$ENDIF}
..
end;
генерирует идентичные голые 64-разрядные функции ASM в Delphi и FPC?
См. [Ответы Ассамблеи на функции системного блока на FreePascal x64] (http://stackoverflow.com/q/16559833/576719) для ответа. –
Без рамки и голые две разные вещи, в прошлый раз, когда я проверил. Голый означает отсутствие пролога/эпилога. Голый подразумевает бескаркасный, но не наоборот. –
.NOFRAME генерирует голую (и, следовательно, бескаркасную) процедуру. Если рамки нет, пролог/эпилог не требуется и не генерируется (по крайней мере, в Delphi). –