|
From: Borja F. <bor...@gm...> - 2011-04-15 22:23:25
|
John can you make a diff patch of the following changes and include them in
the patch file in svn? This patch is necesarry in LLVM to be able to know
the size of function arguments when calling external symbols, and is
required for my latests changes.
TargetCallingConv.h
Add
static const uint64_t SplitPiece = 0x3FULL << 11;
static const uint64_t SplitPieceOffs = 11;
after
static const uint64_t SplitOffs = 10;
Add
unsigned getSplitPiece() const {
return (unsigned)((Flags & SplitPiece) >> SplitPieceOffs);
}
void setSplitPiece(unsigned S) {
Flags = (Flags & ~SplitPiece) | (uint64_t(S) << SplitPieceOffs);
}
After
void setByValSize(unsigned S) {
Flags = (Flags & ~ByValSize) | (uint64_t(S) << ByValSizeOffs);
}
(Introduce a newline after the setByValSize closing brace)
SelectionDAGBuilder.cpp
Add
MyFlags.Flags.setSplitPiece(j);
After
ISD::OutputArg MyFlags(Flags, Parts[j].getValueType(),
i < NumFixedArgs);
(around line 6115)
Add
MyFlags.Flags.setSplitPiece(i);
After
ISD::InputArg MyFlags(Flags, RegisterVT, isArgValueUsed);
(around line 6310)
|