[PATCH] 128-bit ABI for x86_64-w64-mingw32 incorrectly generated

Jameson Nash vtjnash at gmail.com
Sat Apr 19 10:04:52 PDT 2014


  thanks yaron.keren, it sounds like I need to rebuild using MSVC. when that finishes, I will add a test case here

  @asl since the comments were mostly formatting, I was planning on addressing them when updating the patch for a more recent version of llvm. do you have a preference for what version (or svn checkout) that I retarget this for?

  do you have some thoughts on where to locate this patch in the llvm source code? and how I might be able to modify it to address your previous comment that "it brings target-specific stuff inside the target-independent code"? I would like to also consolidate the various copies `makeLibCall`, but was initially trying to minimize the amount of code affected to help with merging


================
Comment at: lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1883
@@ +1882,3 @@
+      Entry.isZExt = false;
+      if (isTailCall) isTailCall = false;
+    }
----------------
David Majnemer wrote:
> What is the point of this? It seems to always set `isTailCall` to `false`.
I was avoiding writing the memory location for the second i128 argument. I guess that's not actually necessary. I wasn't sure if this function could still be tail-called when it had arguments on the stack, so I disabled it to be safe.


http://reviews.llvm.org/D1998






More information about the llvm-commits mailing list