Подскажите пожалуйста, в коде процедуры часто используется вызов функции function BitScanBackward(const aBoard:integer): Integer;near; asm bsr eax, dword ptr aBoard end; Примерно 5 млн раз в сек. Стоит ли переписывать процедуру на ассемблере или inline-код?
Onix-Studio Если ты по инлайном подразумеваешь {$I filename} - то нестоит (вернее не выйдет даже). Лучше по месту писать asm вставки.
Хороший компилятор должен сам решать про такие вещи. А если посмотреть в отладчике готовую (RELEASE) программу? Может такие функции уже вставлены inline-ом?
в Free Pascal макросы есть, но не уверен, что их область действия распространяется на ассемблерные вставки.
Спасибо за ответы! Работаю в Delphi. Я имею в виду, конечно, ассемблерные вставки. Смотрел при пошаговой отладке код на ассемблере- компилятор не преобразует, делает вызов процедуры.
В Delphi есть inline, но работает только начиная с Delphi2005. Например, в справке к D7 честно сказано
А, сори, часно говоря я только в BDS2005 оное и юзал Там инлайн работает, только есть масса ограничений на его использование, в особенности нельзя юзать асм-вставки в инлайн функциях. :'(