Changes in directory llvm/lib/CodeGen:
CallingConvLower.cpp added (r1.1) --- Log message: move CC Lowering stuff to its own public interface --- Diffs of the changes: (+34 -0) CallingConvLower.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+) Index: llvm/lib/CodeGen/CallingConvLower.cpp diff -c /dev/null llvm/lib/CodeGen/CallingConvLower.cpp:1.1 *** /dev/null Mon Feb 26 22:43:12 2007 --- llvm/lib/CodeGen/CallingConvLower.cpp Mon Feb 26 22:43:02 2007 *************** *** 0 **** --- 1,34 ---- + //===-- llvm/CallingConvLower.cpp - Calling Conventions -------------------===// + // + // The LLVM Compiler Infrastructure + // + // This file was developed by Chris Lattner and is distributed under + // the University of Illinois Open Source License. See LICENSE.TXT for details. + // + //===----------------------------------------------------------------------===// + // + // This file implements the CCState class, used for lowering and implementing + // calling conventions. + // + //===----------------------------------------------------------------------===// + + #include "llvm/CodeGen/CallingConvLower.h" + #include "llvm/Target/MRegisterInfo.h" + using namespace llvm; + + CCState::CCState(const MRegisterInfo &mri) : MRI(mri) { + // No stack is used. + StackOffset = 0; + + UsedRegs.resize(MRI.getNumRegs()); + } + + + /// MarkAllocated - Mark a register and all of its aliases as allocated. + void CCState::MarkAllocated(unsigned Reg) { + UsedRegs[Reg/32] |= 1 << (Reg&31); + + if (const unsigned *RegAliases = MRI.getAliasSet(Reg)) + for (; (Reg = *RegAliases); ++RegAliases) + UsedRegs[Reg/32] |= 1 << (Reg&31); + } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits