[fpc-devel] x86ins.dat

tgrundke fckama at freenet.de
Sat Jan 7 13:53:36 CET 2012


Hi,

i am working on the AVX-support for the fp-compiler.

Some AVX-assembler instructions have 4 operant e.g.


VBLENDVPD xmm1, xmm2, xmm3/m128, xmm4



INTEL Def.

3.1.1.2 Opcode Column in the Instruction Summary Table (Instructions
with VEX prefix)

/is4: An 8-bit immediate byte is present containing a source register 
specifier in
imm[7:4] and instruction-specific payload in imm[3:0].



I need a idea, how can i encode (in file x86ins.dat)  the 4th operant.

My idea:

new flag \77 =>> 4th operand is coded in bit 4-7 and the follow byte 
define the bits 0-3
e.g.

[VBLENDVPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm,xmmreg                  
\361\362\372\1\x4B\75\120\77\x00                   AVX,SANDYBRIDGE

\ 361 = prefix 066h for SSE instruction
\ 362 = new flag VEX (starting with 0xC5 or 0xC4)
\ 372 = new flag VEX-CODE include prefix 0x0F3A
\ 75   = VEX-BYTE contains operand no. 2
\ 120 = operands 1 and 3 encoded in MODRM-Byte
\ 77   = immediate byte (bit 4-7) contains 4th operand
\ 00   = immediate byte (bit 0-3) = 0


i look forward to comments.


regards


Torsten Grundke




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20120107/7dfa4692/attachment.html>


More information about the fpc-devel mailing list