I'm using the MIC GNU toolchain (extracted from KNC_beta-2.1.3653-8-rhel-6.2.tgz) to port some system software to Intel MIC. The assembler appears to be a modified binutils-2.22.52.20120302 snapshot. I've noticed that assembling a "jecxz" results in not one 0x67 prefix as expected, but two 0x67 prefixes, which I believe is technically invalid (though the HW seems to swallow it).
> cat jecxz.s
.text
.globl foo
foo:
jecxz 1f
1: ret
> /usr/linux-k1om-4.7/bin/x86_64-k1om-linux-as -o jecxz.o jecxz.s
> /usr/linux-k1om-4.7/bin/x86_64-k1om-linux-objdump -d jecxz.o
jecxz.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <foo>:
0: 67 67 e3 00 addr64 jecxz 4 <foo+0x4>
4: c3 retq
A plain vanilla binutils-2.22 does not generate the extra 0x67 prefix when assembling with --march=k1om.
/Mikael



