summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/x86_32-arguments-linux.c
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2019-06-19 11:34:08 +0000
committerHans Wennborg <hans@hanshq.net>2019-06-19 11:34:08 +0000
commitd874c057bc2361da5157553e1e2178f43c3ade1a (patch)
treebfabdbc1a5b81121b054d320255b82b7a46f7a40 /clang/test/CodeGen/x86_32-arguments-linux.c
parentbb6b85618387f768a6368f289ae754eb92935c5d (diff)
downloadbcm5719-llvm-d874c057bc2361da5157553e1e2178f43c3ade1a.tar.gz
bcm5719-llvm-d874c057bc2361da5157553e1e2178f43c3ade1a.zip
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 llvm-svn: 363790
Diffstat (limited to 'clang/test/CodeGen/x86_32-arguments-linux.c')
-rw-r--r--clang/test/CodeGen/x86_32-arguments-linux.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/test/CodeGen/x86_32-arguments-linux.c b/clang/test/CodeGen/x86_32-arguments-linux.c
index 1bdaa628eb2..3c64fbcc15b 100644
--- a/clang/test/CodeGen/x86_32-arguments-linux.c
+++ b/clang/test/CodeGen/x86_32-arguments-linux.c
@@ -3,7 +3,7 @@
// CHECK-LABEL: define void @f56(
// CHECK: i8 signext %a0, %struct.s56_0* byval(%struct.s56_0) align 4 %a1,
-// CHECK: x86_mmx %a2.coerce, %struct.s56_1* byval(%struct.s56_1) align 4,
+// CHECK: i64 %a2.coerce, %struct.s56_1* byval(%struct.s56_1) align 4,
// CHECK: <1 x double> %a4, %struct.s56_2* byval(%struct.s56_2) align 4,
// CHECK: <4 x i32> %a6, %struct.s56_3* byval(%struct.s56_3) align 4,
// CHECK: <2 x double> %a8, %struct.s56_4* byval(%struct.s56_4) align 4,
@@ -12,7 +12,7 @@
// CHECK: call void (i32, ...) @f56_0(i32 1,
// CHECK: i32 %{{.*}}, %struct.s56_0* byval(%struct.s56_0) align 4 %{{[^ ]*}},
-// CHECK: x86_mmx %{{[^ ]*}}, %struct.s56_1* byval(%struct.s56_1) align 4 %{{[^ ]*}},
+// CHECK: i64 %{{[^ ]*}}, %struct.s56_1* byval(%struct.s56_1) align 4 %{{[^ ]*}},
// CHECK: <1 x double> %{{[^ ]*}}, %struct.s56_2* byval(%struct.s56_2) align 4 %{{[^ ]*}},
// CHECK: <4 x i32> %{{[^ ]*}}, %struct.s56_3* byval(%struct.s56_3) align 4 %{{[^ ]*}},
// CHECK: <2 x double> %{{[^ ]*}}, %struct.s56_4* byval(%struct.s56_4) align 4 %{{[^ ]*}},
OpenPOWER on IntegriCloud