summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2017-02-15 23:22:50 +0000
committerTim Northover <tnorthover@apple.com>2017-02-15 23:22:50 +0000
commit9136617a3f5c21813198a4785642d28a54a729ef (patch)
tree9d9bae3ead1b08bac7e61caae3b0d6ea1547152f /llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
parent4a652227dd766c2910a62e4b6c12dccb48ea9b1a (diff)
downloadbcm5719-llvm-9136617a3f5c21813198a4785642d28a54a729ef.tar.gz
bcm5719-llvm-9136617a3f5c21813198a4785642d28a54a729ef.zip
GlobalISel: legalize va_arg on AArch64.
Uses a Custom implementation because the slot sizes being a multiple of the pointer size isn't really universal, even for the architectures that do have a simple "void *" va_list. llvm-svn: 295255
Diffstat (limited to 'llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp')
-rw-r--r--llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
index 1f78243e115..6bb64e068ec 100644
--- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
@@ -50,6 +50,9 @@ LegalizerHelper::legalizeInstrStep(MachineInstr &MI,
return lower(MI, std::get<1>(Action), std::get<2>(Action));
case LegalizerInfo::FewerElements:
return fewerElementsVector(MI, std::get<1>(Action), std::get<2>(Action));
+ case LegalizerInfo::Custom:
+ return LegalizerInfo.legalizeCustom(MI, MRI, MIRBuilder) ? Legalized
+ : UnableToLegalize;
default:
return UnableToLegalize;
}
OpenPOWER on IntegriCloud