Вот тут погуглил и ничего не нашел (точнее нашел аналогичный вопрос, а не ответ).
Почему sbcl «оптимизирует» (ну то есть заменяет вызов ash на shl) только когда второй аргумент положительный?
И ещё, как sbcl хранит тип всяких там чиселок? Я вроде как читал, что он приписывает к ним какие-то там теги, кодирующие тип. Раз так, как он так шустро делает эти оптимизации, не боясь изменить этот тег.
Ну например что-то типа
(defun foo (bar)
(declare (type (unsigned-byte 32) bar)
(optimize (speed 3)))
(ash bar 1))
Дает
shl rdx,1
mov rsp,rbp
clc
pop rbp
ret
nop nop nop ...
Явно видно, что никакой магии тут нет, обычный сдвиг
Ответ на:
комментарий
от dmitry_vk
Ответ на:
комментарий
от dmitry_vk
Ответ на:
комментарий
от mv
Ответ на:
комментарий
от Zorn
Ответ на:
комментарий
от Zorn
Ответ на:
комментарий
от Zorn
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Nasm, условия перехода (2015)
- Форум [x86_64/asm/c] использование параметров в C-функции (2011)
- Статьи Линукс, ассемблер и X11 (2023)
- Форум Chrome open-ash (2015)
- Форум <Фильм> Ashes & Snow (2008)
- Форум Ash of Gods: Redemption (2017)
- Форум Как $_SERVER['REMOTE_ADDR'] (php) на -ash? (2015)
- Форум Помогите ссылкой на сырцы ash-0.4 (2003)
- Форум Ash/dash и local внутри цикла while. (2016)
- Форум подскажите как реализовать башевскую конструкцию на ash? (2007)