реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Интриyсики, ????
Zelepuk
сообщение Nov 8 2010, 18:33
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Здравствуйте!
Объясните несведущему что такое intrinsics? с чем их едят? для чего?

Желательно по-подробнее и с жизненными примерами... ))
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 8 2010, 18:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



RTFM. Просто почитайте доку на ваш компилятор.
Go to the top of the page
 
+Quote Post
Zelepuk
сообщение Nov 8 2010, 19:57
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



А в общем?
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 8 2010, 20:08
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



А в общем это замена ассемблерных вставок для работы с определенными режимами/регистрами, которых нет/не реализованы в обычном Си.
Go to the top of the page
 
+Quote Post
Student Pupkin
сообщение Nov 8 2010, 20:18
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760



Цитата(Zelepuk @ Nov 8 2010, 21:33) *
Объясните несведущему что такое intrinsics? с чем их едят? для чего?

Зверушки это такие. Едят их с гречкой. Для восполнения белков и жиров
Цитата(Zelepuk @ Nov 8 2010, 21:33) *
Желательно по-подробнее и с жизненными примерами... ))

Жизненный пример для ARM. Вот сели вы пейсать мегапрогу на си. Надобно бы разрешить прерывания IRQ. Ваши действия? (предполагаем, что как минимум про архитектуру ARM вы уже чуток почитали)

p.s. Пардон, не удержался. smile.gif резидент уже все рассказал.

Сообщение отредактировал Student Pupkin - Nov 8 2010, 20:26
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Nov 8 2010, 21:27
Сообщение #6


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



с гречкой biggrin.gif


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
XVR
сообщение Nov 9 2010, 09:43
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Небольшое добавление - иногда интринсиками могут стать и обычные С функции. Например gcc для некоторых архитектур (для x86 например) может сделать например memcpy (и пр.) интринсиками, т.е. вместо вызова функции подставить ее ассемблерное тело прямо в место вызова (причем оно, т.е. тело, может быть модифицировано компилятором в процессе подстановки в зависимости от контекста)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 9 2010, 09:53
Сообщение #8


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(XVR @ Nov 9 2010, 12:43) *
т.е. вместо вызова функции подставить ее ассемблерное тело прямо в место вызова

А вы случайно не с инлайном попутали?


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
XVR
сообщение Nov 9 2010, 10:31
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(MrYuran @ Nov 9 2010, 12:53) *
А вы случайно не с инлайном попутали?
Нет. Именно интринсики. Реализация может быть разная (у gcc версий 3.x они делаются через макрос и кучу более простых, но уже действительно отрабатываемых компилятором, интринсиков), но смысл один.
У gcc все родные интринсики начинаются с __builtin_ (и их дофига)


Go to the top of the page
 
+Quote Post
sigmaN
сообщение Nov 9 2010, 13:55
Сообщение #10


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Я всегда думал, что разница между инлайном и интринсиком в том, что инлайн функция определена где-то в каком-то файле и скомпилирована, а интринсики уже "зашиты" в компилятор и доступны даже в голом main без всяких инклудов и подключений либов....


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
XVR
сообщение Nov 9 2010, 14:58
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(sigmaN @ Nov 9 2010, 16:55) *
Я всегда думал, что разница между инлайном и интринсиком в том, что инлайн функция определена где-то в каком-то файле и скомпилирована, а интринсики уже "зашиты" в компилятор и доступны даже в голом main без всяких инклудов и подключений либов....
Ну в общем да, хотя компилятор волен реализовывать эти интринсики как ему вздумается. У MS компилятора например они действительно реализованы внутри, но хидер с их прототипами все равно надо подключать, иначе он при компиляции ругается maniac.gif
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Nov 9 2010, 15:06
Сообщение #12


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Цитата
иначе он при компиляции ругается
Ну Микросойт же, что тут сказать.... ))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
XVR
сообщение Nov 9 2010, 19:17
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(sigmaN @ Nov 9 2010, 18:06) *
Ну Микросойт же, что тут сказать.... ))
Что то сказать можно rolleyes.gif У Intel'овского компилятора так же.
Дело в том, что интринсики раскрываются в код на этапе кодогенерации. До этого этапа они для всех частей компилятора не более, чем обычные функции. Поэтому фронтэнду компилятора нужны их прототипы, что бы он смог проверить вызов, если надо преобразовать типы параметров и правильно построить промежуточное представление. Так что где то они должны быть описаны - либо в отдельной таблице в самом компиляторе, либо снаружи, в виде хидера. Второй путь гораздо проще, т.к. по сути первый путь сводится либо к включению текста этого хидера прямо в компилятор (в виде текста), либо включение в компилятор откомпилированного образа этого хидера, что потребует дополнительных тулзов и режимов работы самого компилятора, что бы этот образ получить unsure.gif

Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Nov 9 2010, 20:18
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



IAR тоже ругается, но компилит.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Nov 10 2010, 00:30
Сообщение #15


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Цитата
Второй путь гораздо проще, т.к. по сути первый путь сводится либо к включению текста этого хидера прямо в компилятор (в виде текста),...
согласен.


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 19:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.015 секунд с 7
ELECTRONIX ©2004-2016