Fix x86/x86_64 calling convention for _ExtInt
authorErich Keane <erich.keane@intel.com>
Fri, 24 Apr 2020 03:36:29 +0000 (20:36 -0700)
committerErich Keane <erich.keane@intel.com>
Wed, 29 Apr 2020 18:04:25 +0000 (11:04 -0700)
commit5a1d9c0f5ac85b486a539b1d9558205821f17b33
tree3e2d5c64f47804affe9782548adbc2da7cc12c06
parent613d86637434182adb4f2a1f629a2ec94d02b569
Fix x86/x86_64 calling convention for _ExtInt

After speaking with Craig Topper about some recent defects, he pointed
out that _ExtInts should be passed indirectly if larger than the largest
int register, and like ints when smaller than that.  This patch
implements that.

Note that this changed the way vaargs worked quite a bit, but they still
work.

Differential Revision: https://reviews.llvm.org/D78785
clang/lib/CodeGen/TargetInfo.cpp
clang/test/CodeGen/ext-int-sanitizer.cpp
clang/test/CodeGen/ext-int.c
clang/test/CodeGenCXX/ext-int.cpp