From: Jiangning Liu Date: Fri, 25 Apr 2014 12:07:03 +0000 (+0000) Subject: [ARM64] Handle fp128 for parameter passing on stack X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=0c4797c31a29964acdbdb70694b91c4c647a5fa2;p=oota-llvm.git [ARM64] Handle fp128 for parameter passing on stack git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207222 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/ARM64/ARM64CallingConvention.td b/lib/Target/ARM64/ARM64CallingConvention.td index 1a2463062ef..40324953c02 100644 --- a/lib/Target/ARM64/ARM64CallingConvention.td +++ b/lib/Target/ARM64/ARM64CallingConvention.td @@ -59,7 +59,8 @@ def CC_ARM64_AAPCS : CallingConv<[ CCIfType<[i32, f32], CCAssignToStack<8, 8>>, CCIfType<[i64, f64, v1f64, v2f32, v1i64, v2i32, v4i16, v8i8], CCAssignToStack<8, 8>>, - CCIfType<[v2i64, v4i32, v8i16, v16i8, v4f32, v2f64], CCAssignToStack<16, 16>> + CCIfType<[f128, v2i64, v4i32, v8i16, v16i8, v4f32, v2f64], + CCAssignToStack<16, 16>> ]>; def RetCC_ARM64_AAPCS : CallingConv<[ diff --git a/test/CodeGen/ARM64/aapcs.ll b/test/CodeGen/ARM64/aapcs.ll index 293fe1af0e1..bd206a48b73 100644 --- a/test/CodeGen/ARM64/aapcs.ll +++ b/test/CodeGen/ARM64/aapcs.ll @@ -94,3 +94,10 @@ define i128 @test_i128_shadow([7 x i64] %x0_x6, i128 %sp) { ret i128 %sp } + +; This test is to check if fp128 can be correctly handled on stack. +define fp128 @test_fp128([8 x float] %arg0, fp128 %arg1) { +; CHECK-LABEL: test_fp128: +; CHECK: ldr {{q[0-9]+}}, [sp] + ret fp128 %arg1 +}