<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small">Compiled Xalan (one of SPEC2006 programs) with llvm 3.9.0, </div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small">I have discovered the fixup of the jmp instruction at 0x4143FF is pointing to nop instruction (at 0x414175) </div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small">instead of the next instruction at 0x414180. </div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-size:small"><div class="gmail_default"><font face="monospace, monospace">.text:0000000000414175 66 66 2E 0F 1F 84 00 00 00 00 00     nop     word ptr [rax+rax+00000000h]</font></div><div class="gmail_default"><span style="font-family:monospace,monospace">.text:0000000000414180 49 8B 06                             mov     rax, [r14]</span><br></div><div class="gmail_default"><font face="monospace, monospace">.text:0000000000414183 48 8B 98 F8 00 00 00                 mov     rbx, [rax+0F8h]</font></div></div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small">...</div><div class="gmail_default" style="font-size:small"><div class="gmail_default"><font face="monospace, monospace">.text:00000000004143F7 48 89 DF             mov     rdi, rbx</font></div><div class="gmail_default"><font face="monospace, monospace">.text:00000000004143FA E8 91 E2 FE FF       call    ___cxa_throw</font></div><div class="gmail_default"><span style="font-family:monospace,monospace">.text:00000000004143FF E9 71 FD FF FF       jmp     loc_414175</span><br></div></div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small">...</div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small">The following is another example that the unconditional branch (0x460025) points to *nop-like* instruction</div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small">(xchg ax, ax @0x46003e) instead of the next instruction (0x460040).</div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small">...</div><div class="gmail_default" style="font-size:small"><div class="gmail_default"><span style="font-family:monospace,monospace">.text:0000000000460025 EB 17                jmp     short loc_46003E</span><br></div><div class="gmail_default"><span style="font-family:monospace,monospace">.text:0000000000460027 31 ED                xor     ebp, ebp</span><br></div><div class="gmail_default"><font face="monospace, monospace">.text:0000000000460029 E9 CB 02 00 00       jmp     loc_4602F9</font></div><div class="gmail_default"><span style="font-family:monospace,monospace">.text:000000000046002E 66 90                align 10h</span><br></div><div class="gmail_default"><span style="font-family:monospace,monospace">.text:0000000000460030 8D 50 01             lea     edx, [rax+1]</span><br></div><div class="gmail_default"><font face="monospace, monospace">.text:0000000000460033 41 89 54 24 04       mov     [r12+4], edx</font></div><div class="gmail_default"><font face="monospace, monospace">.text:0000000000460038 89 C0                mov     eax, eax</font></div><div class="gmail_default"><font face="monospace, monospace">.text:000000000046003A 66 89 2C 41          mov     [rcx+rax*2], bp</font></div></div><div class="gmail_default"><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">.text:000000000046003E 66 90                xchg    ax, ax</font></div><div class="gmail_default"><font face="monospace, monospace">.text:0000000000460040 48 8B 7B 50          mov     rdi, [rbx+50h]  ; this<br></font></div><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">...</font></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Xalan is the only case that has this particular issue of all SPEC - 13 fixups in total point to 3 locations that contain </div><div class="gmail_default" style="font-size:small">either nop or nop-like instructions. I understand there is no problem to execute the binary but</div><div class="gmail_default" style="font-size:small">why LLVM emits the binary that has fixups referring to NOP (I think it's a MC alignment fragment), </div><div class="gmail_default" style="font-size:small">not a legitimate code fragment (or logical basic block)? Is this expected?</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Thanks!</div></div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small"><br></div><div><div class="gmail_signature"><div dir="ltr"><font color="#444444" size="2" face="verdana, sans-serif">Best Regards,</font><div><font color="#444444" size="2" face="verdana, sans-serif">Hyungjoon Koo (Kevin)</font></div></div></div></div>
</div>