Цитата Сообщение от Titus Посмотреть сообщение
Вообще, на первый взгляд, расшифровать микрокод - это еще та жесть)

Скрытый текст


Код:
; 210  : 	s = _mm_setzero_si128();
; 211  : 	z = _mm_setzero_si128();
; 212  : 	do {
; 213  : 		x = _mm_load_si128(&p->xor);
; 214  : 		a = _mm_load_si128(&p->and);
; 215  : 		t = _mm_load_si128(&p->sop[0]);
; 216  : 		x = _mm_xor_si128(x, v);

  00022	f3 41 0f 6f 08	 movdqu	 xmm1, XMMWORD PTR [r8]

; 217  : 		x = _mm_and_si128(x, a);
; 218  : 		x = _mm_cmpeq_epi32(x, z);
; 219  : 		a = _mm_unpacklo_epi32(x, x);
; 220  : 		a = _mm_and_si128(a, t);
; 221  : 		t = _mm_load_si128(&p->sop[1]);
; 222  : 		s = _mm_or_si128(s, a);
; 223  : 		a = _mm_unpackhi_epi32(x, x);
; 224  : 		a = _mm_and_si128(a, t);
; 225  : 		s = _mm_or_si128(s, a);
; 226  : 		++p;

  00027	4d 8d 40 50	 lea	 r8, QWORD PTR [r8+80]
  0002b	66 0f ef cb	 pxor	 xmm1, xmm3
  0002f	66 41 0f db 48
	c0		 pand	 xmm1, XMMWORD PTR [r8-64]
  00035	66 0f 76 cc	 pcmpeqd xmm1, xmm4
  00039	66 0f 6f c1	 movdqa	 xmm0, xmm1
  0003d	66 0f 62 c1	 punpckldq xmm0, xmm1
  00041	66 41 0f db 40
	e0		 pand	 xmm0, XMMWORD PTR [r8-32]
  00047	66 0f 6a c9	 punpckhdq xmm1, xmm1
  0004b	66 0f eb c2	 por	 xmm0, xmm2
  0004f	66 41 0f db 48
	f0		 pand	 xmm1, XMMWORD PTR [r8-16]
  00055	66 0f 6f d0	 movdqa	 xmm2, xmm0
  00059	66 0f eb d1	 por	 xmm2, xmm1
[свернуть]

На выходные постараюсь написать пост как я анализировал ВМ1 и выложу процедуры для анализатора.
Вон сверху написана оптимизация под SSE2 (мир как бы далеко от PDP-11 уже ушел, надо новенькое осваивать ), ускорило процесс в x2.5 раза, доделаю AVX2 и М-арные деревья и расскажу как на эти матрицы смотреть

- - - Добавлено - - -

Цитата Сообщение от Titus Посмотреть сообщение
записать диаграммы работы небольшого количества команд, с отображением IA0..IA5
Это тебе не поможет. Никак. Там надо статанализ делать, с полным покрытием вариантов.