[LLVMdev] Questions of instruction target description of MSP430

Heyu Zhu zhu.heyu at gmail.com
Fri Dec 18 06:52:35 PST 2009

Hi everyone,

I am puzzled by several instruction defines in MSP430.

def MOV16rr : Pseudo<(outs GR16:$dst), (ins GR16:$src),
                     "mov.w\t{$src, $dst}",
                     [ ]>;
Because it's an empty  dag pattern[ ], by what does instuction selector
select intruction 'MOV16rr'?

let canFoldAsLoad = 1, isReMaterializable = 1, mayHaveSideEffects = 1 in {
def MOV16rm : Pseudo<(outs GR16:$dst), (ins memsrc:$src),
                "mov.w\t{$src, $dst}",
                [(set GR16:$dst, (load addr:$src))]>;
Please gvie me an explaination of the property IsReMaterialiable and the
benefit if it is true with a simple sample

def ADD16rr : Pseudo<(outs GR16:$dst), (ins GR16:$src1, GR16:$src2),
                     "add.w\t{$src2, $dst}",
                     [(set GR16:$dst, (add GR16:$src1, GR16:$src2)),
                      (implicit SRW)]>;
What informaton instuction selector will get by '(implicit SRW)'?
I can't understand 'implicit SRW' completely.

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

More information about the llvm-dev mailing list