]> granicus.if.org Git - clang/commit
Revert r363116 "[X86] [ABI] Fix i386 ABI "__m64" type bug"
authorHans Wennborg <hans@hanshq.net>
Wed, 19 Jun 2019 11:34:08 +0000 (11:34 +0000)
committerHans Wennborg <hans@hanshq.net>
Wed, 19 Jun 2019 11:34:08 +0000 (11:34 +0000)
commit7a5dd209e33cb6330a14bb5a076efd347c106218
tree073ef4876072799ca7355d66ee3f294d8cf47dc4
parent5fc0703b02d74b3a303bc8a6159dde1193bde27d
Revert r363116 "[X86] [ABI] Fix i386 ABI "__m64" type bug"

This introduced MMX instructions in code that wasn't previously using
them, breaking programs using 64-bit vectors and x87 floating-point in
the same application. See discussion on the code review for more
details.

> According to System V i386 ABI: the  __m64 type paramater and return
> value are passed by MMX registers. But current implementation treats
> __m64 as i64 which results in parameter passing by stack and returning
> by EDX and EAX.
>
> This patch fixes the bug (https://bugs.llvm.org/show_bug.cgi?id=41029)
> for Linux and NetBSD.
>
> Patch by Wei Xiao (wxiao3)
>
> Differential Revision: https://reviews.llvm.org/D59744

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363790 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/TargetInfo.cpp
test/CodeGen/x86_32-arguments-linux.c
test/CodeGen/x86_32-m64.c [deleted file]