В чем разница между LD3 (структура с несколькими модулями) и LD3 (одиночная структура) в структуре ARMv8-A

arm load neon

51 просмотра

1 ответ

Из официального документа на ARMv8-A я знал, что инструкция LD3 имеет две формы. Один для одной структуры, а другой для нескольких структур. Я знаю разницу в их утилитах, но мне интересно, так как они оба называются «LD3», как я могу определить, является ли это для нескольких или одной структуры? А именно, какая разница при написании этих двух видов инструкций.

введите описание изображения здесь введите описание изображения здесь

Я заметил, что для инструкции LD3 (одиночная структура) есть часть, называемая "", но я не могу понять, что на самом деле означает "индекс" и что я должен написать, чтобы заменить его. введите описание изображения здесь введите описание изображения здесь

Автор: Lazyloper Источник Размещён: 01.08.2019 09:19

Ответы (1)


1 плюс

Различия проиллюстрированы ниже:

ld3     {v0.16b, v1.16b, v2.16b}, [x0]

ld3     {v0.b, v1.b, v2.b}[2], [x0]

Первый загружает 48 байтов, а последний загружает только три байта.

Давайте предположим, что x0это указывает на 8-битный массив от 0 до 47

v0: 45  42  39  36  33  30  27  24  21  18  15  12  9   6   3   0
v1: 46  43  40  37  34  31  28  25  22  19  16  13  10  7   4   1
v2: 47  44  41  38  35  32  29  26  23  20  17  14  11  8   5   2

против

v0: x   x   x   x   x   x   x   x   x   x   x   x   x   0   x   x
v1: x   x   x   x   x   x   x   x   x   x   x   x   x   1   x   x
v2: x   x   x   x   x   x   x   x   x   x   x   x   x   2   x   x

где xозначает, что старые значения в регистрах остаются без изменений.

Автор: Jake 'Alquimista' LEE Размещён: 24.07.2018 09:26
Вопросы из категории :
32x32