summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/x86_32-arguments-linux.c
diff options
context:
space:
mode:
authorPengfei Wang <pengfei.wang@intel.com>2019-06-12 01:52:23 +0000
committerPengfei Wang <pengfei.wang@intel.com>2019-06-12 01:52:23 +0000
commitfbfee60c32636a5dec6acceca401a78a1b024025 (patch)
treeed36880708cf422ad5732fc727505fd2a373df17 /clang/test/CodeGen/x86_32-arguments-linux.c
parentdd4bed3d7a8555db26c256489791bb6c78d5272b (diff)
downloadbcm5719-llvm-fbfee60c32636a5dec6acceca401a78a1b024025.tar.gz
bcm5719-llvm-fbfee60c32636a5dec6acceca401a78a1b024025.zip
[X86] [ABI] Fix i386 ABI "__m64" type bug
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: 363116
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 3c64fbcc15b..1bdaa628eb2 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: i64 %a2.coerce, %struct.s56_1* byval(%struct.s56_1) align 4,
+// CHECK: x86_mmx %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: i64 %{{[^ ]*}}, %struct.s56_1* byval(%struct.s56_1) align 4 %{{[^ ]*}},
+// CHECK: x86_mmx %{{[^ ]*}}, %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