Size: a a a

Ассемблер

2021 May 19

a

asm in Ассемблер
Добро пожаловать Max Azatian. Не ответив на вопрос, будешь удалён из чата
источник

MA

Max Azatian in Ассемблер
Какой вопрос?
источник

MA

Max Azatian in Ассемблер
В общем, всем привет, у меня вопрос :
у меня в хмм0 валяется {0,0,0, флоат}, и из этого я хочу сделать {флоат,флоат,флоат,флоат}.

Вот код на С (то что я сделать хочу):
c
__m128 hihi(__m128 toDo){
   toDo = _mm_shuffle_ps(toDo, toDo, 3);
   toDo = (__m128) _mm_shuffle_epi32((__m128i) toDo, 0);
   return toDo;
}

Вот две вариации на асме (части другой функции,  {0,0,0, флоат} лежит в хмм0) :
movsd xmm1, xmm0
shufps xmm0, xmm1, 3
pshufd xmm0, xmm0, 0
movups XMMWORD PTR [rsp], xmm0

 movq r9, xmm0
 shl r9, 32
 shr r9, 32
mov dword ptr [rsp], r9d
mov dword ptr [rsp+4], r9d
mov dword ptr [rsp+8], r9d
mov dword ptr [rsp+12], r9d

Чем второй подход лучше первого?
источник

MA

Max Azatian in Ассемблер
а, пишу на x86-64, SysV ABI
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
откуда такое утверждение?
источник

MA

Max Azatian in Ассемблер
универский тестер пропускает второе, но не пропускает первое (остальной код одинаковый), поэтому и спросил
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
ну тогда все просто, второй лучше тем что тестер его пропускает, а первый хуже потому что не пропускает. тестеры то люди писали, и самый правильный внятный толковый и главное обоснованый ответ скажут только они  

на асме одну и ту же задачу можно выполнить множествами способами, где то быстрей, где то короче, где то памяти меньше жрет, где то по минимуму регистры использует ( в плане их количества)
источник

MA

Max Azatian in Ассемблер
не, это понятно, что то что работает лучше того, что не работает

но мб есть в первом подходе пара подводных камней, из-за которых он все руинит
источник

MA

Max Azatian in Ассемблер
потому что у меня на ноуте компилится и то, и другое правильно
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
так мож там условие, размножить флоат в sse не пользуясь инструкциями sse. второй вариант это и делает, через РОН
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
а мож условие это размер кода
источник

C

Cofeefee in Ассемблер
Приветствовать. Я обычный рабочий Иван из города Тверь. Жить Россия устать много налог мало зарплат, порций рис не хватать. Читать на досуг идеи Мао из газет Жейминь Жибао 中国心。Узнать про Китай. Стать интерес, как жить в Китай.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
источник

C

Cofeefee in Ассемблер
Так я за мика риса работать, на ассемблере писать
источник

И

Игорь in Ассемблер
виши на джава, за 2 миски риса😂😂😂
источник

С

Сергей in Ассемблер
Ты платишь налоги? Можно узнать какие? Что-то не хочу тогда в Тверь
источник

C

Cofeefee in Ассемблер
Буду переходить писать на Бейсике и на 1С, будут платить два (зачёркнуто) три миска риса!
источник

C

Cofeefee in Ассемблер
Можно фотографию вашего удостоверения налогового инспектора?
источник

И

Игорь in Ассемблер
Где ваши права? Мои права в конституции!😂
источник

С

Сергей in Ассемблер
А у меня нет такого 😂
источник