summaryrefslogtreecommitdiff
path: root/include/llvm/Target
diff options
context:
space:
mode:
authorManman Ren <mren@apple.com>2012-11-01 23:49:58 +0000
committerManman Ren <mren@apple.com>2012-11-01 23:49:58 +0000
commit0a1544d2fd63d8101dc7d50974e65c95a0f6f98d (patch)
tree221348531d6d8698343785ba324f2b2ee6695755 /include/llvm/Target
parent4ac300dfac53022e690fc9a60deb42976c369a6f (diff)
downloadllvm-0a1544d2fd63d8101dc7d50974e65c95a0f6f98d.tar.gz
llvm-0a1544d2fd63d8101dc7d50974e65c95a0f6f98d.tar.bz2
llvm-0a1544d2fd63d8101dc7d50974e65c95a0f6f98d.tar.xz
OutputArg: added an index of the original argument to match the change to
InputArg in r165616. This will enable us to get the actual type for both InputArg and OutputArg. rdar://9932559 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167265 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Target')
-rw-r--r--include/llvm/Target/TargetCallingConv.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/include/llvm/Target/TargetCallingConv.h b/include/llvm/Target/TargetCallingConv.h
index 8030d38d73..2160e371bd 100644
--- a/include/llvm/Target/TargetCallingConv.h
+++ b/include/llvm/Target/TargetCallingConv.h
@@ -140,9 +140,19 @@ namespace ISD {
/// IsFixed - Is this a "fixed" value, ie not passed through a vararg "...".
bool IsFixed;
+ /// Index original Function's argument.
+ unsigned OrigArgIndex;
+
+ /// Offset in bytes of current output value relative to the beginning of
+ /// original argument. E.g. if argument was splitted into four 32 bit
+ /// registers, we got 4 OutputArgs with PartOffsets 0, 4, 8 and 12.
+ unsigned PartOffset;
+
OutputArg() : IsFixed(false) {}
- OutputArg(ArgFlagsTy flags, EVT vt, bool isfixed)
- : Flags(flags), IsFixed(isfixed) {
+ OutputArg(ArgFlagsTy flags, EVT vt, bool isfixed,
+ unsigned origIdx, unsigned partOffs)
+ : Flags(flags), IsFixed(isfixed), OrigArgIndex(origIdx),
+ PartOffset(partOffs) {
VT = vt.getSimpleVT();
}
};