[PATCH] D91924: [X86] Have indirect calls take pointer-sized operands

Harald van Dijk via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Nov 21 14:55:22 PST 2020


hvdijk added inline comments.


================
Comment at: llvm/test/CodeGen/X86/pic.ll:103
 ; CHECK-X32:	movl	pfoo at GOTPCREL(%rip),
-; CHECK-X32:	callq	*
+; CHECK-X32:	call{{l|q}}	*
 }
----------------
craig.topper wrote:
> Why a regular expression? Shouldn't it be fixed for x32?
It's a good question. I wanted to say that either would be okay since the high bits of all addresses are known to be zero, but actually that is not at all the case at all, it must be callq, and this patch is wrong. The instruction would be okay if it were valid, but it's not: the result of CALL32r passes LLVM's own consistency tests, but is subsequently rejected by the assembler, something not covered by the tests. I will redo this patch to use the other approach, the zero extending. Apologies for the noise and for the breakage.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91924/new/

https://reviews.llvm.org/D91924



More information about the llvm-commits mailing list