diff options
author | Tim Northover <tnorthover@apple.com> | 2014-06-03 13:54:53 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2014-06-03 13:54:53 +0000 |
commit | 6890add11d2ef1948d4c16dca68a8ea96d46535d (patch) | |
tree | 99265ee3b3d4bdcfbdbf3b21b74cb4b69427e9dd /llvm/lib/Target/AArch64/AArch64FastISel.cpp | |
parent | 8c557283c0576d3382d70e859213ff50b1106dd4 (diff) | |
download | bcm5719-llvm-6890add11d2ef1948d4c16dca68a8ea96d46535d.tar.gz bcm5719-llvm-6890add11d2ef1948d4c16dca68a8ea96d46535d.zip |
AArch64: mark small types (i1, i8, i16) as promoted
This means the output of LowerFormalArguments returns a lowered
SDValue with the correct type (expected in SelectionDAGBuilder).
Without this, an assertion under a DEBUG macro triggers when those
types are passed on the stack.
llvm-svn: 210102
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64FastISel.cpp')
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64FastISel.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64FastISel.cpp b/llvm/lib/Target/AArch64/AArch64FastISel.cpp index f97cfb943d7..c84889e1f9d 100644 --- a/llvm/lib/Target/AArch64/AArch64FastISel.cpp +++ b/llvm/lib/Target/AArch64/AArch64FastISel.cpp @@ -1218,7 +1218,6 @@ bool AArch64FastISel::ProcessCallArgs( Arg = EmitIntExt(SrcVT, Arg, DestVT, /*isZExt*/ false); if (Arg == 0) return false; - ArgVT = DestVT; break; } case CCValAssign::AExt: @@ -1229,7 +1228,6 @@ bool AArch64FastISel::ProcessCallArgs( Arg = EmitIntExt(SrcVT, Arg, DestVT, /*isZExt*/ true); if (Arg == 0) return false; - ArgVT = DestVT; break; } default: @@ -1248,7 +1246,7 @@ bool AArch64FastISel::ProcessCallArgs( assert(VA.isMemLoc() && "Assuming store on stack."); // Need to store on the stack. - unsigned ArgSize = VA.getLocVT().getSizeInBits() / 8; + unsigned ArgSize = (ArgVT.getSizeInBits() + 7) / 8; unsigned BEAlign = 0; if (ArgSize < 8 && !Subtarget->isLittleEndian()) |