Вот тут погуглил и ничего не нашел (точнее нашел аналогичный вопрос, а не ответ).
Почему 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)