diff options
author | Tim Northover <tnorthover@apple.com> | 2017-02-15 23:22:50 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2017-02-15 23:22:50 +0000 |
commit | 5562e17d88f00450fbea5dc825f8cb7b2f6e343e (patch) | |
tree | baddb9a12dfeff438933a82a8c87b3a1ba76d1ac /lib/Target/AArch64/AArch64LegalizerInfo.h | |
parent | 432026394b19c5e4f988fd396f8e980ea072868e (diff) |
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295255 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/AArch64/AArch64LegalizerInfo.h')
-rw-r--r-- | lib/Target/AArch64/AArch64LegalizerInfo.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/Target/AArch64/AArch64LegalizerInfo.h b/lib/Target/AArch64/AArch64LegalizerInfo.h index feacbef9f14..42d4ac130c5 100644 --- a/lib/Target/AArch64/AArch64LegalizerInfo.h +++ b/lib/Target/AArch64/AArch64LegalizerInfo.h @@ -25,6 +25,13 @@ class LLVMContext; class AArch64LegalizerInfo : public LegalizerInfo { public: AArch64LegalizerInfo(); + + bool legalizeCustom(MachineInstr &MI, MachineRegisterInfo &MRI, + MachineIRBuilder &MIRBuilder) const override; + +private: + bool legalizeVaArg(MachineInstr &MI, MachineRegisterInfo &MRI, + MachineIRBuilder &MIRBuilder) const; }; } // End llvm namespace. #endif |