Должен ли я найти справочник по наборам команд Intel и AMD x86 для значения битов CPUID? - PullRequest
0 голосов
/ 27 апреля 2020

Должен ли я найти справочник по наборам команд Intel и AMD x86 для значений битов CPUID?

Это вызывает у меня подозрения (из Wikipedia ):

ABM реализован только как один набор инструкций AMD; все процессоры AMD поддерживают обе инструкции или ни одной. Intel рассматривает POPCNT как часть SSE4.2, а LZCNT - как часть BMI1. POPCNT имеет отдельный флаг CPUID; однако Intel использует флаг AMD ABM для обозначения поддержки LZCNT (поскольку LZCNT завершает ABM)

Вопрос только в значении CPUID.

Я думаю, что сами инструкции либо реализованы, либо нет, но коды операций не имеют различного значения, поэтому для самих инструкций я думаю, что одной ссылки достаточно. Что касается ожиданий в производительности, убедитесь, что именно семейство процессоров имеет значение, а не только поставщик.

1 Ответ

1 голос
/ 27 апреля 2020

ПРО - это всего 2 инструкции, popcnt и lzcnt. Все процессоры Intel, которые устанавливают этот бит, поддерживают оба. Вот почему они пишут (поскольку LZCNT завершает ПРО) .

Вы можете просто проверить этот бит, не заботясь о продавце.

Я думаю, что в Теоретические поставщики не хотят обещать, что каждый другой поставщик будет использовать функциональные биты одинаково, но на практике все функциональные биты для расширений ISA универсальны и означают одно и то же независимо от поставщика. (Я думаю.)

...