x86: properly handle SSE/AVX instructions
diff --git a/cs.c b/cs.c
index d17cb55..c3becd8 100644
--- a/cs.c
+++ b/cs.c
@@ -662,9 +662,12 @@
 			handle->insn_id(handle, insn_cache, mci.Opcode);
 
 			handle->printer(&mci, &ss, handle->printer_info);
-
 			fill_insn(handle, insn_cache, ss.buffer, &mci, handle->post_printer, buffer);
 
+			// adjust for pseudo opcode (X86)
+			if (handle->arch == CS_ARCH_X86)
+				insn_cache->id += mci.popcode_adjust;
+
 			next_offset = insn_size;
 		} else	{
 			// encounter a broken instruction
@@ -869,6 +872,10 @@
 
 		fill_insn(handle, insn, ss.buffer, &mci, handle->post_printer, *code);
 
+		// adjust for pseudo opcode (X86)
+		if (handle->arch == CS_ARCH_X86)
+			insn->id += mci.popcode_adjust;
+
 		*code += insn_size;
 		*size -= insn_size;
 		*address += insn_size;