llvm-6502/lib/Target/PIC16/PIC16DebugInfo.h

94 lines
1.8 KiB
C++

//===-- PIC16DebugInfo.h - Interfaces for PIC16 Debug Information ============//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file contains the helper functions for representing debug information.
//
//===----------------------------------------------------------------------===//
#ifndef PIC16DBG_H
#define PIC16DBG_H
#include "llvm/Analysis/DebugInfo.h"
namespace llvm {
namespace PIC16Dbg {
enum VarType {
T_NULL,
T_VOID,
T_CHAR,
T_SHORT,
T_INT,
T_LONG,
T_FLOAT,
T_DOUBLE,
T_STRUCT,
T_UNION,
T_ENUM,
T_MOE,
T_UCHAR,
T_USHORT,
T_UINT,
T_ULONG
};
enum DerivedType {
DT_NONE,
DT_PTR,
DT_FCN,
DT_ARY
};
enum TypeSize {
S_BASIC = 5,
S_DERIVED = 3
};
enum DbgClass {
C_NULL,
C_AUTO,
C_EXT,
C_STAT,
C_REG,
C_EXTDEF,
C_LABEL,
C_ULABEL,
C_MOS,
C_ARG,
C_STRTAG,
C_MOU,
C_UNTAG,
C_TPDEF,
C_USTATIC,
C_ENTAG,
C_MOE,
C_REGPARM,
C_FIELD,
C_AUTOARG,
C_LASTENT,
C_BLOCK = 100,
C_FCN,
C_EOS,
C_FILE,
C_LINE,
C_ALIAS,
C_HIDDEN,
C_EOF,
C_LIST,
C_SECTION,
C_EFCN = 255
};
}
class PIC16DbgInfo {
public:
void PopulateDebugInfo(DIType Ty, unsigned short &TypeNo, bool &HasAux,
int Aux[], std::string &TypeName);
unsigned GetTypeDebugNumber(std::string &type);
short getClass(DIGlobalVariable DIGV);
};
} // end namespace llvm;
#endif