nickdesaulniers added a comment. In D110869#3295559 <https://reviews.llvm.org/D110869#3295559>, @void wrote:
> Weird. We generate similar code to GCC: > > Clang: > _paravirt_ident_64: # @_paravirt_ident_64 > movq %rdi, %rax > xorq %rdi, %rdi > retq > > GCC: > _paravirt_ident_64: > movq %rdi, %rax # tmp85, x > xorl %edi, %edi # > ret Does `xorl` not zero the upper 32b? Definitely something magical about this function. Perhaps it should have the function attribute to disable zeroing added to the kernel sources? tools/objtool/objtool.c mentions something about `_paravirt_ident_64` and `paravirt_patch`. I'm curious @nathanchance if you move the definition of `_paravirt_ident_64` to an external assembler file, and see whether the mere `xorl` vs `xorq` makes a difference for some reason for boot? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D110869/new/ https://reviews.llvm.org/D110869 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits