summaryrefslogtreecommitdiff
path: root/lib/Target/AArch64/AArch64LegalizerInfo.h
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
commit5562e17d88f00450fbea5dc825f8cb7b2f6e343e (patch)
treebaddb9a12dfeff438933a82a8c87b3a1ba76d1ac /lib/Target/AArch64/AArch64LegalizerInfo.h
parent432026394b19c5e4f988fd396f8e980ea072868e (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.h7
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