[LLVMdev] Pesudo X86 instructions used for generating constants

zr zvirack at yahoo.com
Sun Nov 14 08:20:59 PST 2010


Hi,

I noticed a bunch of psuedo instructions used for creation of constants without 
generating loads. e.g. pxor xmm0, xmm0
Here is an example of what i am referring to snipped from X86InstrSSE.td:

def FsFLD0SS : I<0xEF, MRMInitReg, (outs FR32:$dst), (ins), "",
                 [(set FR32:$dst, fp32imm0)]>,
                 Requires<[HasSSE1]>, TB, OpSize;

My question is why was there a need to define such a pseudo instruction?
Wouldn't it be cleaner to use a def: Pat<> which selects: 
pxor $dst, $dst 
from:
[(set FR32:$dst, fp32imm0)] ?

Thanks in advance.


      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20101114/6789ae65/attachment.html>


More information about the llvm-dev mailing list