Перестановка переменных между вектором и исходным выравниванием переменной - PullRequest
0 голосов
/ 13 декабря 2010

в следующем параграфе: «Набор команд требует, чтобы нагрузки и хранилища из локальной памяти были выровнены по 128 битам. Регистры имеют ширину 128 бит, при этом инструкции обрабатывают эти 128 бит как вектор из шестнадцати 8-битных, восьми 16-битныхчетыре 32-битных или два 64-битных значения, в зависимости от операции. Поэтому операции стека push и pop должны перетасовывать переменные между первым векторным интервалом регистра и исходным выравниванием переменной "Может кто-нибудь объяснить, пожалуйста, какие перетасовки переменныхзначит?

1 Ответ

0 голосов
/ 13 декабря 2010

Ваши вопросы не касаются Java, но как работают регистры SSE2?

Набор инструкций SSE2 использует 128-битные регистры, однако большинство регистров в x86 / x64 - 32-бит или 64-бит.В любом случае Java скрывает эти детали от вас, и вам не нужно знать, какой у системы размер исходного регистра.

Можете ли вы дать некоторый контекст тому, о чем вы говорите?Google не смог найти предоставленную вами цитату.

Если вы говорите о SSE2, то перестановка означает, что процессор может упаковать несколько меньших значений в одно большое значение, сдвигаясь каждый раз на 8 для 8-битных значенийкаждый раз для 16-битных значений и т. д. Он делает это так, что может работать со всеми значениями одновременно с помощью одной операции.Как мини-вектор фиксированного размера.Более длинные векторы можно оперировать, выполняя эти операции много раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...