blob: e1e69ee5b1e56c5b900fb04efc6925041184fdf4 [file] [log] [blame]
//===- NaClBitcodeDefs.h ----------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// Defines some common types/constants used by bitcode readers and
// writers. It is intended to make clear assumptions made in
// representing bitcode files.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_BITCODE_NACL_NACLBITCODEDEFS_H
#define LLVM_BITCODE_NACL_NACLBITCODEDEFS_H
namespace llvm {
namespace naclbitc {
// Special record codes used to model codes for predefined records.
// They are very large so that they do not conflict with existing
// record codes for user-defined blocks.
enum SpecialBlockCodes {
BLK_CODE_ENTER = 65535,
BLK_CODE_EXIT = 65534,
BLK_CODE_DEFINE_ABBREV = 65533,
BLK_CODE_HEADER = 65532
};
} // end of namespace naclbitc
/// Defines type for value indicies in bitcode. Like a size_t, but
/// fixed across platforms.
typedef uint32_t NaClBcIndexSize_t;
/// Signed version of NaClBcIndexSize_t. Used to define relative indices.
typedef int32_t NaClRelBcIndexSize_t;
/// Defines maximum allowed bitcode index in bitcode files.
static const size_t NaClBcIndexSize_t_Max =
std::numeric_limits<NaClBcIndexSize_t>::max();
/// Defines the maximum number of initializers allowed, based on ILP32.
static const size_t MaxNaClGlobalVarInits =
std::numeric_limits<uint32_t>::max();
} // end of namespace llvm
#endif // LLVM_BITCODE_NACL_NACLBITCODEDEFS_H