-
- Он самый, ассемблерная подстановка. Так всегда обычно поступают, когда в инструкциях процессора команда есть, а в языке нет ее аналога. Скажем, в том же IAR EWAVR есть функция для обмена местами тетрад в байте - swap_nibbles(unsigned char), Ксения(195 знак., 18.01.2017 01:18)
- intrinsics - это хороший механизм, но он компилерозависим. Надо быть готовым перелопатить эти места при смене компилера. Evgeny_CD(101 знак., 18.01.2017 01:23 - 01:29)
- Смотрите шире. Скажем в C/C++ нет циклического сдвига, а он частенько бывает нужен, или риверс битов для того же FFT. Причем, выход из таких ситуаций именно таков, как я сказала - даруют intrinsics-функции, если процессор на эти действия способен. Ксения(551 знак., 18.01.2017 01:36)
- Интересно, как ведут себя компилеры, если разрядность операндов отличается от той разрядности, под которую заточена конкретная команда, закодированная intrinsic? Они выдают ошибку, пытаются приводить типы? - Evgeny_CD(18.01.2017 01:55)
- Приводятся типы. - Ксения(18.01.2017 02:06)
- Интересно, как ведут себя компилеры, если разрядность операндов отличается от той разрядности, под которую заточена конкретная команда, закодированная intrinsic? Они выдают ошибку, пытаются приводить типы? - Evgeny_CD(18.01.2017 01:55)
- Смотрите шире. Скажем в C/C++ нет циклического сдвига, а он частенько бывает нужен, или риверс битов для того же FFT. Причем, выход из таких ситуаций именно таков, как я сказала - даруют intrinsics-функции, если процессор на эти действия способен. Ксения(551 знак., 18.01.2017 01:36)
- intrinsics - это хороший механизм, но он компилерозависим. Надо быть готовым перелопатить эти места при смене компилера. Evgeny_CD(101 знак., 18.01.2017 01:23 - 01:29)
- Он самый, ассемблерная подстановка. Так всегда обычно поступают, когда в инструкциях процессора команда есть, а в языке нет ее аналога. Скажем, в том же IAR EWAVR есть функция для обмена местами тетрад в байте - swap_nibbles(unsigned char), Ксения(195 знак., 18.01.2017 01:18)