This revision was automatically updated to reflect the committed changes.
Closed by commit rG6de45b9e6a2c: [clang] Fix reading long doubles with va_arg
on x86_64 mingw (authored by mstorsjo).
Changed prior to commit:
https://reviews.llvm.org/D103452?vs=349517&id=350390#toc
Repository:
rG LLV
mstorsjo added inline comments.
Comment at: clang/test/CodeGen/mingw-long-double.c:56-58
+ // GNU32: bitcast i8* %argp.cur to x86_fp80*
+ // GNU64: bitcast i8* %argp.cur to x86_fp80**
+ // MSC64: bitcast i8* %argp.cur to double*
rnk wrote:
> mstorsjo wrote:
>
rnk added inline comments.
Comment at: clang/test/CodeGen/mingw-long-double.c:56-58
+ // GNU32: bitcast i8* %argp.cur to x86_fp80*
+ // GNU64: bitcast i8* %argp.cur to x86_fp80**
+ // MSC64: bitcast i8* %argp.cur to double*
mstorsjo wrote:
> mstorsjo wrote:
>
mstorsjo added inline comments.
Comment at: clang/test/CodeGen/mingw-long-double.c:56-58
+ // GNU32: bitcast i8* %argp.cur to x86_fp80*
+ // GNU64: bitcast i8* %argp.cur to x86_fp80**
+ // MSC64: bitcast i8* %argp.cur to double*
mstorsjo wrote:
> rnk wrote:
>
mstorsjo added inline comments.
Comment at: clang/test/CodeGen/mingw-long-double.c:56-58
+ // GNU32: bitcast i8* %argp.cur to x86_fp80*
+ // GNU64: bitcast i8* %argp.cur to x86_fp80**
+ // MSC64: bitcast i8* %argp.cur to double*
rnk wrote:
> These tests will s
rnk accepted this revision.
rnk added a comment.
This revision is now accepted and ready to land.
lgtm
Comment at: clang/test/CodeGen/mingw-long-double.c:56-58
+ // GNU32: bitcast i8* %argp.cur to x86_fp80*
+ // GNU64: bitcast i8* %argp.cur to x86_fp80**
+ // MSC64: bitcast
mstorsjo updated this revision to Diff 349517.
mstorsjo added a comment.
Updated the CodeGenCXX/ext-int.cpp testcase.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D103452/new/
https://reviews.llvm.org/D103452
Files:
clang/lib/CodeGen/TargetInfo.
mstorsjo updated this revision to Diff 349491.
mstorsjo added a comment.
Updated to not require the types to be either `isAggregateTypeForABI(Ty)` or
`Ty->isMemberPointerType()`, just check the size of the type, added a testcase
for `__int128` (which I tested against GCC).
Repository:
rG LLV
mstorsjo added inline comments.
Comment at: clang/lib/CodeGen/TargetInfo.cpp:4364-4365
// MS x64 ABI requirement: "Any argument that doesn't fit in 8 bytes, or is
// not 1, 2, 4, or 8 bytes, must be passed by reference."
if (isAggregateTypeForABI(Ty) || Ty->isMemberPoi
mstorsjo added inline comments.
Comment at: clang/lib/CodeGen/TargetInfo.cpp:4364-4365
// MS x64 ABI requirement: "Any argument that doesn't fit in 8 bytes, or is
// not 1, 2, 4, or 8 bytes, must be passed by reference."
if (isAggregateTypeForABI(Ty) || Ty->isMemberPoi
rnk added inline comments.
Comment at: clang/lib/CodeGen/TargetInfo.cpp:4364-4365
// MS x64 ABI requirement: "Any argument that doesn't fit in 8 bytes, or is
// not 1, 2, 4, or 8 bytes, must be passed by reference."
if (isAggregateTypeForABI(Ty) || Ty->isMemberPointerT
mstorsjo created this revision.
mstorsjo added reviewers: rnk, mati865.
Herald added a subscriber: pengfei.
mstorsjo requested review of this revision.
Herald added a project: clang.
On x86_64 mingw, long doubles are always passed indirectly as
arguments (see an existing case in WinX86_64ABIInfo::
12 matches
Mail list logo