diff options
author | Manman Ren <mren@apple.com> | 2012-06-01 19:33:18 +0000 |
---|---|---|
committer | Manman Ren <mren@apple.com> | 2012-06-01 19:33:18 +0000 |
commit | 68f25571e759c1fcf2da206109647259f49f7416 (patch) | |
tree | 861c26c6230399c7a15e25af8e868f16aafb9ad2 /lib/Target/ARM/ARMInstrInfo.td | |
parent | a0c5e6ceb53c0f77906d813a354b19e72d26950c (diff) | |
download | llvm-68f25571e759c1fcf2da206109647259f49f7416.tar.gz llvm-68f25571e759c1fcf2da206109647259f49f7416.tar.bz2 llvm-68f25571e759c1fcf2da206109647259f49f7416.tar.xz |
ARM: properly handle alignment for struct byval.
Factor out the expansion code into a function.
This change is to be enabled in clang.
rdar://9877866
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157830 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMInstrInfo.td')
-rw-r--r-- | lib/Target/ARM/ARMInstrInfo.td | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td index f700ec6eec..cf7d07c1d3 100644 --- a/lib/Target/ARM/ARMInstrInfo.td +++ b/lib/Target/ARM/ARMInstrInfo.td @@ -18,9 +18,9 @@ // Type profiles. def SDT_ARMCallSeqStart : SDCallSeqStart<[ SDTCisVT<0, i32> ]>; def SDT_ARMCallSeqEnd : SDCallSeqEnd<[ SDTCisVT<0, i32>, SDTCisVT<1, i32> ]>; -def SDT_ARMStructByVal : SDTypeProfile<0, 3, +def SDT_ARMStructByVal : SDTypeProfile<0, 4, [SDTCisVT<0, i32>, SDTCisVT<1, i32>, - SDTCisVT<2, i32>]>; + SDTCisVT<2, i32>, SDTCisVT<3, i32>]>; def SDT_ARMSaveCallPC : SDTypeProfile<0, 1, []>; @@ -4174,9 +4174,9 @@ let usesCustomInserter = 1 in { let usesCustomInserter = 1 in { def COPY_STRUCT_BYVAL_I32 : PseudoInst< - (outs), (ins GPR:$dst, GPR:$src, i32imm:$size), + (outs), (ins GPR:$dst, GPR:$src, i32imm:$size, i32imm:$alignment), NoItinerary, - [(ARMcopystructbyval GPR:$dst, GPR:$src, imm:$size)]>; + [(ARMcopystructbyval GPR:$dst, GPR:$src, imm:$size, imm:$alignment)]>; } let mayLoad = 1 in { |