aboutsummaryrefslogtreecommitdiff
path: root/lib/Bytecode/Analyzer/ReaderPrimitives.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Bytecode/Analyzer/ReaderPrimitives.h')
-rw-r--r--lib/Bytecode/Analyzer/ReaderPrimitives.h101
1 files changed, 0 insertions, 101 deletions
diff --git a/lib/Bytecode/Analyzer/ReaderPrimitives.h b/lib/Bytecode/Analyzer/ReaderPrimitives.h
deleted file mode 100644
index 496ab2a5b1..0000000000
--- a/lib/Bytecode/Analyzer/ReaderPrimitives.h
+++ /dev/null
@@ -1,101 +0,0 @@
-//===-- ReaderPrimitives.h - Bytecode file format reading prims -*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This header defines some basic functions for reading basic primitive types
-// from a bytecode stream.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef READERPRIMITIVES_H
-#define READERPRIMITIVES_H
-
-#include "Support/DataTypes.h"
-#include <string>
-
-namespace llvm {
-
- static inline unsigned read(const unsigned char *&Buf,
- const unsigned char *EndBuf) {
- if (Buf+4 > EndBuf) throw std::string("Ran out of data!");
- Buf += 4;
- return Buf[-4] | (Buf[-3] << 8) | (Buf[-2] << 16) | (Buf[-1] << 24);
- }
-
-
- // read_vbr - Read an unsigned integer encoded in variable bitrate format.
- //
- static inline unsigned read_vbr_uint(const unsigned char *&Buf,
- const unsigned char *EndBuf) {
- unsigned Shift = 0;
- unsigned Result = 0;
-
- do {
- if (Buf == EndBuf) throw std::string("Ran out of data!");
- Result |= (unsigned)((*Buf++) & 0x7F) << Shift;
- Shift += 7;
- } while (Buf[-1] & 0x80);
- return Result;
- }
-
- static inline uint64_t read_vbr_uint64(const unsigned char *&Buf,
- const unsigned char *EndBuf) {
- unsigned Shift = 0;
- uint64_t Result = 0;
-
- do {
- if (Buf == EndBuf) throw std::string("Ran out of data!");
- Result |= (uint64_t)((*Buf++) & 0x7F) << Shift;
- Shift += 7;
- } while (Buf[-1] & 0x80);
- return Result;
- }
-
- static inline int64_t read_vbr_int64(const unsigned char *&Buf,
- const unsigned char *EndBuf) {
- uint64_t R = read_vbr_uint64(Buf, EndBuf);
- if (R & 1) {
- if (R != 1)
- return -(int64_t)(R >> 1);
- else // There is no such thing as -0 with integers. "-0" really means
- // 0x8000000000000000.
- return 1LL << 63;
- } else
- return (int64_t)(R >> 1);
- }
-
- // align32 - Round up to multiple of 32 bits...
- static inline void align32(const unsigned char *&Buf,
- const unsigned char *EndBuf) {
- Buf = (const unsigned char *)((unsigned long)(Buf+3) & (~3UL));
- if (Buf > EndBuf) throw std::string("Ran out of data!");
- }
-
- static inline std::string read_str(const unsigned char *&Buf,
- const unsigned char *EndBuf) {
- unsigned Size = read_vbr_uint(Buf, EndBuf);
- const unsigned char *OldBuf = Buf;
- Buf += Size;
- if (Buf > EndBuf) // Size invalid?
- throw std::string("Ran out of data reading a string!");
- return std::string((char*)OldBuf, Size);
- }
-
- static inline void input_data(const unsigned char *&Buf,
- const unsigned char *EndBuf,
- void *Ptr, void *End) {
- unsigned char *Start = (unsigned char *)Ptr;
- unsigned Amount = (unsigned char *)End - Start;
- if (Buf+Amount > EndBuf) throw std::string("Ran out of data!");
- std::copy(Buf, Buf+Amount, Start);
- Buf += Amount;
- }
-
-} // End llvm namespace
-
-#endif