diff options
author | Sanjiv Gupta <sanjiv.gupta@microchip.com> | 2008-11-19 11:00:54 +0000 |
---|---|---|
committer | Sanjiv Gupta <sanjiv.gupta@microchip.com> | 2008-11-19 11:00:54 +0000 |
commit | b1b5ffd827c77f0668d803b8c06b2f9296744f99 (patch) | |
tree | 50927bf30fff92fd28b11b51e72002f26cad7a61 /lib/Target/PIC16/PIC16ConstantPoolValue.cpp | |
parent | 2f45f9762da4ac6e823e83bff36806be1b099ea2 (diff) |
Added a more function PIC16 backend. However to get this working a patch in
ExpandIntegerOperand (LegalizeIntegerTypes.cpp) is needed which is yet to be reworked and submitted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59617 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PIC16/PIC16ConstantPoolValue.cpp')
-rw-r--r-- | lib/Target/PIC16/PIC16ConstantPoolValue.cpp | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/lib/Target/PIC16/PIC16ConstantPoolValue.cpp b/lib/Target/PIC16/PIC16ConstantPoolValue.cpp deleted file mode 100644 index 152c7377ab..0000000000 --- a/lib/Target/PIC16/PIC16ConstantPoolValue.cpp +++ /dev/null @@ -1,89 +0,0 @@ -//===- PIC16ConstantPoolValue.cpp - PIC16 constantpool value --------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file implements the PIC16 specific constantpool value class. -// -//===----------------------------------------------------------------------===// - -#include "PIC16ConstantPoolValue.h" -#include "llvm/ADT/FoldingSet.h" -#include "llvm/GlobalValue.h" -#include "llvm/Type.h" -#include "llvm/Support/raw_ostream.h" -using namespace llvm; - -PIC16ConstantPoolValue::PIC16ConstantPoolValue(GlobalValue *gv, unsigned id, - PIC16CP::PIC16CPKind k, - unsigned char PCAdj, - const char *Modif, bool AddCA) - : MachineConstantPoolValue((const Type*)gv->getType()), - GV(gv), S(NULL), LabelId(id), Kind(k), PCAdjust(PCAdj), - Modifier(Modif), AddCurrentAddress(AddCA) {} - -PIC16ConstantPoolValue::PIC16ConstantPoolValue(const char *s, unsigned id, - PIC16CP::PIC16CPKind k, - unsigned char PCAdj, - const char *Modif, bool AddCA) - : MachineConstantPoolValue((const Type*)Type::Int32Ty), - GV(NULL), S(s), LabelId(id), Kind(k), PCAdjust(PCAdj), - Modifier(Modif), AddCurrentAddress(AddCA) {} - -PIC16ConstantPoolValue::PIC16ConstantPoolValue(GlobalValue *gv, - PIC16CP::PIC16CPKind k, - const char *Modif) - : MachineConstantPoolValue((const Type*)Type::Int32Ty), - GV(gv), S(NULL), LabelId(0), Kind(k), PCAdjust(0), - Modifier(Modif) {} - -int PIC16ConstantPoolValue::getExistingMachineCPValue(MachineConstantPool *CP, - unsigned Alignment) { - unsigned AlignMask = (1 << Alignment)-1; - const std::vector<MachineConstantPoolEntry> Constants = CP->getConstants(); - for (unsigned i = 0, e = Constants.size(); i != e; ++i) { - if (Constants[i].isMachineConstantPoolEntry() && - (Constants[i].Offset & AlignMask) == 0) { - PIC16ConstantPoolValue *CPV = - (PIC16ConstantPoolValue *)Constants[i].Val.MachineCPVal; - if (CPV->GV == GV && - CPV->S == S && - CPV->LabelId == LabelId && - CPV->Kind == Kind && - CPV->PCAdjust == PCAdjust) - return i; - } - } - - return -1; -} - -void -PIC16ConstantPoolValue::AddSelectionDAGCSEId(FoldingSetNodeID &ID) { - ID.AddPointer(GV); - ID.AddPointer(S); - ID.AddInteger(LabelId); - ID.AddInteger((unsigned)Kind); - ID.AddInteger(PCAdjust); -} - -void PIC16ConstantPoolValue::print(raw_ostream &O) const { - if (GV) - O << GV->getName(); - else - O << S; - if (isNonLazyPointer()) O << "$non_lazy_ptr"; - else if (isStub()) O << "$stub"; - if (Modifier) O << "(" << Modifier << ")"; - if (PCAdjust != 0) { - O << "-(LPIC" << LabelId << "+" - << (unsigned)PCAdjust; - if (AddCurrentAddress) - O << "-."; - O << ")"; - } -} |