<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Ok, <div><br></div><div>Scratching the surface this morning on Bug 1388.  Happy to find that CCR has already been defined in ARMRegisterInfo.td</div><div><br></div><div>However all uses in the instruction info tablegen files indicate that a two-value operand can't be used where a dag node expects two operands.</div><div><div>  </div><div><font class="Apple-style-span" face="'Courier New'">  // FIXME: should be able to write a pattern for ARMBrcond, but can't use</font></div><div><font class="Apple-style-span" face="'Courier New'">  // a two-value operand where a dag node expects two operands. :(</font></div><div><font class="Apple-style-span" face="'Courier New'">  def Bcc : ABI<0b1010, (outs), (ins br_target:$target),</font></div><div><font class="Apple-style-span" face="'Courier New'">               IIC_Br, "b", "\t$target",</font></div><div><font class="Apple-style-span" face="'Courier New'">               [/*(ARMbrcond bb:$target, imm:$cc, CCR:$ccr)*/]> {</font></div><div><font class="Apple-style-span" face="'Courier New'">    bits<24> target;</font></div><div><font class="Apple-style-span" face="'Courier New'">    let Inst{23-0} = target;</font></div><div><font class="Apple-style-span" face="'Courier New'">    let DecoderMethod = "DecodeBranchImmInstruction";</font></div><div><font class="Apple-style-span" face="'Courier New'">  }</font></div></div><div><font class="Apple-style-span" face="'Courier New'"><br></font></div><div><div><font class="Apple-style-span" face="'Courier New'">// FIXME: should be able to write a pattern for ARMcmov, but can't use</font></div><div><font class="Apple-style-span" face="'Courier New'">// a two-value operand where a dag node expects two operands. :(</font></div><div><font class="Apple-style-span" face="'Courier New'">let neverHasSideEffects = 1 in {</font></div><div><font class="Apple-style-span" face="'Courier New'">def MOVCCr : ARMPseudoInst<(outs GPR:$Rd), (ins GPR:$false, GPR:$Rm, pred:$p),</font></div><div><font class="Apple-style-span" face="'Courier New'">                           4, IIC_iCMOVr,</font></div><div><font class="Apple-style-span" face="'Courier New'">  [/*(set GPR:$Rd, (ARMcmov GPR:$false, GPR:$Rm, imm:$cc, CCR:$ccr))*/]>,</font></div><div><font class="Apple-style-span" face="'Courier New'">      RegConstraint<"$false = $Rd">;</font></div><div><br></div><div>It would appear that ISelDAGToDag and ISelLowering have "knowledge" of the CCR, but ... I'm wondering if that's a moot point since the instruction definitions could care less.</div><div><br></div><div>K, well I guess I get to learn more about the DAG data model in LLVM.</div><div><br></div><div>Any pointers would be much obliged... </div><div><br></div><div>Cheers,</div><div><br></div><div apple-content-edited="true">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><font class="Apple-style-span" face="Calibri" color="#a9a9a9"><div style="margin-top: 0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; ">Joe Abbey<o:p></o:p></div><div style="margin-top: 0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; ">Software Architect<o:p></o:p></div><div style="margin-top: 0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; ">Arxan Technologies, Inc.<o:p></o:p></div><div style="margin-top: 0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; ">1305 Cumberland Ave, Ste 215<o:p></o:p></div><div style="margin-top: 0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; ">West Lafayette, IN 47906</div><div style="margin-top: 0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; "><a href="mailto:jabbey@arxan.com" style="text-decoration: underline; ">jabbey@arxan.com</a><o:p></o:p></div><div style="margin-top: 0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; "><span style="text-decoration: underline; "><a href="http://www.arxan.com/" style="text-decoration: underline; ">www.arxan.com</a></span></div></font></div></div>
</div>

<br></div></body></html>