mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Virtual method calls are overrated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15694 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4f65fb38c6
commit
be5af7d7f5
@ -2494,8 +2494,8 @@ static void CreateCodeForVariableSizeAlloca(const TargetMachine& target,
|
||||
numElementsVal->getType(), isValid);
|
||||
assert(isValid && "Unexpectedly large array dimension in alloca!");
|
||||
int64_t total = numElem * tsize;
|
||||
if (int extra= total % target.getFrameInfo()->getStackFrameSizeAlignment())
|
||||
total += target.getFrameInfo()->getStackFrameSizeAlignment() - extra;
|
||||
if (int extra= total % SparcV9FrameInfo::StackFrameSizeAlignment)
|
||||
total += SparcV9FrameInfo::StackFrameSizeAlignment - extra;
|
||||
totalSizeVal = ConstantSInt::get(Type::IntTy, total);
|
||||
} else {
|
||||
// The size is not a constant. Generate code to compute it and
|
||||
|
@ -7,9 +7,7 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Interface to stack frame layout info for the UltraSPARC. Starting offsets
|
||||
// for each area of the stack frame are aligned at a multiple of
|
||||
// getStackFrameSizeAlignment().
|
||||
// Interface to stack frame layout info for the UltraSPARC.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
@ -57,9 +55,9 @@ SparcV9FrameInfo::getDynamicAreaOffset(MachineFunction& mcInfo, bool& pos) const
|
||||
// dynamic-size alloca.
|
||||
pos = false;
|
||||
unsigned optArgsSize = mcInfo.getInfo()->getMaxOptionalArgsSize();
|
||||
if (int extra = optArgsSize % getStackFrameSizeAlignment())
|
||||
optArgsSize += (getStackFrameSizeAlignment() - extra);
|
||||
if (int extra = optArgsSize % 16)
|
||||
optArgsSize += (16 - extra);
|
||||
int offset = optArgsSize + FirstOptionalOutgoingArgOffsetFromSP;
|
||||
assert((offset - OFFSET) % getStackFrameSizeAlignment() == 0);
|
||||
assert((offset - OFFSET) % 16 == 0);
|
||||
return offset;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user