Size: a a a

2020 October 22

AT

Anatoly Tomilov in pro.cxx
Побитый Кирпич
реализация мува очевидно unspecified
плохо терять capacity, если можно его не терять
источник

ПК

Побитый Кирпич... in pro.cxx
Anatoly Tomilov
плохо терять capacity, если можно его не терять
не факт
источник

ПК

Побитый Кирпич... in pro.cxx
Может я не хочу как раз память расходовать
источник

AT

Anatoly Tomilov in pro.cxx
Побитый Кирпич
Может я не хочу как раз память расходовать
shrink_to_fit(). Хотя здесь всё равно дают возможность не терять, если использовать`swap`.
источник
2020 October 23

AT

Anatoly Tomilov in pro.cxx
storebe и bswap не обратные друг к другу операции, почему такой код генерируется? https://godbolt.org/z/zxf5GE
источник

SS

Sergey Sobolev in pro.cxx
если сделать вот так _storebe_i64(&n, __bswap_64(n) + 1);, то будет видно, что все-таки эквивалентны
источник

SS

Sergey Sobolev in pro.cxx
да и по описанию вроде одинаковое действие делают
источник

AT

Anatoly Tomilov in pro.cxx
Perform a bit swap operation of the 64 bits in data, and store the results to memory.
источник

AT

Anatoly Tomilov in pro.cxx
bit
источник

АР

Андрей Руссков... in pro.cxx
я пытаюсь понять где ты нашел "bit"
источник

АР

Андрей Руссков... in pro.cxx
bswap., movbe это всё про bytes
источник

АР

Андрей Руссков... in pro.cxx
в x86 нет битреверса
источник

АР

Андрей Руссков... in pro.cxx
я когда фурье делал тоже с этого бесился
источник

DF

Dollar Føølish in pro.cxx
+++
источник

SS

Sergey Sobolev in pro.cxx
Anatoly Tomilov
Perform a bit swap operation of the 64 bits in data, and store the results to memory.
это bswap
dst[7:0] := a[63:56]
dst[15:8] := a[55:48]
dst[23:16] := a[47:40]
dst[31:24] := a[39:32]
dst[39:32] := a[31:24]
dst[47:40] := a[23:16]
dst[55:48] := a[15:8]
dst[63:56] := a[7:0]

а это _storebe_i64
addr := MEM[ptr]
FOR j := 0 to 7
 i := j*8
 MEM[ptr+i+7:ptr+i] := data[63-i:56-i]
ENDFOR

если подставить j от 0 до 7, то получится одно и то же
источник

AT

Anatoly Tomilov in pro.cxx
Андрей Руссков
я пытаюсь понять где ты нашел "bit"
источник

AT

Anatoly Tomilov in pro.cxx
Sergey Sobolev
это bswap
dst[7:0] := a[63:56]
dst[15:8] := a[55:48]
dst[23:16] := a[47:40]
dst[31:24] := a[39:32]
dst[39:32] := a[31:24]
dst[47:40] := a[23:16]
dst[55:48] := a[15:8]
dst[63:56] := a[7:0]

а это _storebe_i64
addr := MEM[ptr]
FOR j := 0 to 7
 i := j*8
 MEM[ptr+i+7:ptr+i] := data[63-i:56-i]
ENDFOR

если подставить j от 0 до 7, то получится одно и то же
да. Уже объяснили мне
источник

АР

Андрей Руссков... in pro.cxx
https://www.felixcloutier.com/x86/movbe
MOVBE — Move Data After Swapping Bytes
источник

AT

Anatoly Tomilov in pro.cxx
надо этот псевдокод смотреть (или verilog — хз), а не текст
источник

АР

Андрей Руссков... in pro.cxx
распечатай результат )
источник