summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMInstrInfo.td
diff options
context:
space:
mode:
authorManman Ren <mren@apple.com>2012-06-01 19:33:18 +0000
committerManman Ren <mren@apple.com>2012-06-01 19:33:18 +0000
commit68f25571e759c1fcf2da206109647259f49f7416 (patch)
tree861c26c6230399c7a15e25af8e868f16aafb9ad2 /lib/Target/ARM/ARMInstrInfo.td
parenta0c5e6ceb53c0f77906d813a354b19e72d26950c (diff)
downloadllvm-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.td8
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 {