<div dir="ltr"><div class="gmail_default" style="font-size:small">Thanks. </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Found some related code in Native Client implementation. </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">It mainly hacks the X86DAGToDAGISel::matchAddressBase to assign the SDNode to the index register, instead of using base register first. Other hacks try to avoid assign SDNode to base register.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I'm still checking Native Client's implementation. Will check the <span style="font-size:12.8px">X86TargetLowering::</span><wbr style="font-size:12.8px"><span style="font-size:12.8px">isLegalAddressingMode. </span></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Regards,</div><div class="gmail_default" style="font-size:small">Hu Hong</div><div class="gmail_extra"><br><div class="gmail_quote">On 18 October 2016 at 11:24, Jingyue Wu <span dir="ltr"><<a href="mailto:jingyue@google.com" target="_blank">jingyue@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Maybe modify X86TargetLowering::<wbr>isLegalAddressingMode to make base+index illegal? <br></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="gmail-h5">On Sun, Oct 16, 2016 at 7:51 PM, Hong Hu via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="gmail-h5"><div dir="ltr"><div style="font-size:small"><div>Hi All,</div><div><br></div><div>I have a question regarding LLVM backend. I appreciate a lot if anyone can provide some hints. </div><div><br></div><div>My work here is to avoid base+index address mode for X86 target, to allow base-register only or index-register only address mode. For example, </div><div>"mov (%rsi), %rbx" is allowed, but "mov (%rsi, %rax), %rbx" is not allowed.</div><div><br></div><div>I understand LLVM backend is a complex system. Can any one help point out which subsystem I should look into to solve my question? </div><div>  </div><div style="font-size:12.8px"><div class="gmail-m_-3310550377434307551m_961417678982312862gmail-m_1384608583187780611gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Regards,<div>Hu Hong</div></div></div></div></div></div></div></div></div>
<br></div></div><span class="gmail-">______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></span></blockquote></div><br></div>
</blockquote></div><br></div></div>