From: anonymous c. <nas...@us...> - 2008-05-05 05:54:14
|
> +#define IF_SANDYBANKS 0x0C000000UL /* Sandy Banks instruction */ The correct codename is Sandy Bridge. Also, the AVX spec describes four separate ISA extensions: PCLMUL and AES (slated for Westmere, the Nehalem shrink), VEX/AVX (slated for Sandy Bridge, the Westmere successor), and VEX/FMA (slated for a yet-to-be-publicly-codenamed shrink of Sandy Bridge). It might be a good idea to get those annotations right, rather than lumping all of the instructions into a single AVX category. > + * \172\ab - the register number from operand a in bits 7..4, with > + * the 4-bit immediate from operand b in bits 0..3. What about instructions that do have the immediate byte, but no 5th op to select the lowest four bits? (In the files that I attached to SF 1953132 you can see \314 and \315.) > + bits 64 > + vpermil2ps xmm0,xmm1,[rdi],xmm3,0 > + vpermil2ps xmm0,xmm1,xmm2,[rdi],1 > + vpermil2ps ymm0,ymm1,ymm2,ymm3,2 > + vpermil2ps ymm0,ymm1,ymm2,[rdi],3 > + vpermil2ps ymm0,ymm1,[rdi],ymm3,2 > + vpermil2ps ymm0,ymm1,ymm2,[rdi],3 NASM emits... C44301481F30 C44381481711 C4430548DA32 C44385481713 C44305481F32 C44385481713 ...which is incorrect. It should emit this... C4E371480730 C4E3F1480721 C4E37548C232 C4E3F5480723 C4E375480732 C4E3F5480723 ...instead. |