|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.09.2016, 14:55 | #1 |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
Assembler + inline
Заметил, что Berlin не позволяет объявлять функции, содержащие ассемблерные вставки, как inline. Это всегда так было (с Delphi 2005) или появилось позже (и когда)? Можно ли это как-то обойти?
p.s. И еще вопрос: правильно ли я понимаю, что intrinsic-функции — это по сути и есть inline-функции или между ними есть какая-то разница? Я не говорю про сравнение ассемблерных вставок и кода на чистом ЯВУ (потому что в Яндексе при вроде запроса о разнице между intrinsic и inline-функциями приводится именно сравнение intrinsic на чистом ЯВУ и inline на ассемблере). Я спрашиваю про разницу между intrinsic и inline при прочих равных (и то, и то на ЯВУ или и то, и другое на асме).
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
|
28.09.2016, 15:27 | #2 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
По моему это всю жизнь так было. Правда не уверен.
Разницы нет. Разве что inline-функция не обязана заинлайниться, а intrinsic при любом раскладе.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
28.09.2016, 15:30 | #3 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
28.09.2016, 15:37 | #4 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
|
|
28.09.2016, 15:39 | #5 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
28.09.2016, 16:22 | #6 |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
Чего ж тут логичного?
Записал параметры в регистры (и в стек, если надо) и так же используй, какие проблемы? Только без call и ret. А почему inline-функция может не заинлайниться?
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
|
28.09.2016, 16:25 | #7 | |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
Цитата:
Хотите сказать, нельзя делать ассемблерные вставки в функции? Хм, надо попробовать. Разве это не для iOS только?
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
|
|
28.09.2016, 16:30 | #8 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Цитата:
адаптировать то паскаль-код легко, а вот асм-код уже нет. если при инлайне обычного кода это все легко пересчитывается, то при инлайне асм кода пересчет может стать слишком большим. потому что компилятор может посчитать что нет смысла в этом, ибо слишком разбухнет код. заинлайнить все и вся, конечно быстрее, но вот размер кода резко Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
28.09.2016, 16:49 | #9 | |||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
Цитата:
Цитата:
Последний раз редактировалось Человек_Борща; 28.09.2016 в 16:52. |
|||
28.09.2016, 18:12 | #10 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Спасибо. Но я имел ввиду не гегерацию бинарного кода, а текста на языке паскаль. Это не трудно.
Цитата:
Но в ней нет ни какой надобности. Всё равно все делают инстриксы которые напрямую переводятся в IR. По сути это одна и тажа работа. Разве что инстриксов меньше чем асм-команд. А поповоду не заинлайнится. Так это от оптимизатора зависит. Это опять из стандарта Си++. Типо если с функцией код быстрее чем инлайн, а такое бывает - то оптимизатор может неинлайнить.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
inline c gcc O3 медленее чем без inline | LynXzp | Общие вопросы C/C++ | 4 | 27.12.2012 20:54 |
Inline assembler C++ функция swap(). | nartov55 | Помощь студентам | 7 | 04.04.2012 14:28 |
inline assembler qt | lem | Qt и кроссплатформенное программирование С/С++ | 5 | 15.08.2011 12:08 |
gcc inline assembler - обнуление переменной | gvf | Помощь студентам | 1 | 13.06.2010 19:33 |
inline??? | пыхта4ог | Общие вопросы C/C++ | 2 | 09.11.2007 17:54 |