«

»

Ноя 11 2013

SHLD/SHRD или сказ о том, как я «Intel® 64 and IA-32 Architectures Software Developer’s Manual» читал

Периодически, когда у меня выдаётся несколько свободных минут, но их маловато чтобы сделать что-то полезное, я убиваю время чтением «Intel® 64 and IA-32 Architectures Software Developer’s Manual». И вот позавчера, во время очередного такого чтения, я наткнулся на описание инструкций SHLD/SHRD. Уж не знаю как я их до этого не замечал, но факт остаётся фактом — в реализации работы с большими числами их сдвиги были реализованы через SHL/SHR. И я это отчётливо помнил.

Естественно прочитав про «новые» инструкции я сразу же нашел часик на исправление текущей реализации. Результаты просто отличные — время выполнения операций сдвига больших чисел сократилось в 1.5(!) раза. Хотя конечно общий прирост производительности RSA невелик, но с другой стороны общий прирост производительности на ~5.5% это тоже не так уж и мало.

Добавить комментарий