| Index: include/llvm/Bitcode/NaCl/NaClBitcodeDecoders.h
|
| diff --git a/include/llvm/Bitcode/NaCl/NaClBitcodeDecoders.h b/include/llvm/Bitcode/NaCl/NaClBitcodeDecoders.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a3250e0c2219a7a787b2fb757872cfc137516454
|
| --- /dev/null
|
| +++ b/include/llvm/Bitcode/NaCl/NaClBitcodeDecoders.h
|
| @@ -0,0 +1,74 @@
|
| +//===- NaClBitcodeDecoders.h -------------------------------------*- C++ -*-===//
|
| +// Functions used to decode values in PNaCl bitcode files.
|
| +//
|
| +// The LLVM Compiler Infrastructure
|
| +//
|
| +// This file is distributed under the University of Illinois Open Source
|
| +// License. See LICENSE.TXT for details.
|
| +//
|
| +//===----------------------------------------------------------------------===//
|
| +//
|
| +// This header file provides a public API for value decoders defined in
|
| +// the PNaCl bitcode reader.
|
| +//
|
| +//===----------------------------------------------------------------------===//
|
| +
|
| +#ifndef LLVM_BITCODE_NACL_NACLBITCODEDECODERS_H
|
| +#define LLVM_BITCODE_NACL_NACLBITCODEDECODERS_H
|
| +
|
| +#include "llvm/IR/CallingConv.h"
|
| +#include "llvm/IR/GlobalValue.h"
|
| +#include "llvm/IR/InstrTypes.h"
|
| +#include "llvm/IR/Instruction.h"
|
| +#include "llvm/Bitcode/NaCl/NaClLLVMBitCodes.h"
|
| +
|
| +namespace llvm {
|
| +namespace naclbitc {
|
| +
|
| +/// Converts the NaCl (bitcode file) cast opcode to the corresponding
|
| +/// LLVM cast opcode. Returns true if the conversion
|
| +/// succeeds. Otherwise sets LLVMOpcode to Instruction::BitCast and
|
| +/// returns false.
|
| +bool DecodeCastOpcode(uint64_t NaClOpcode,
|
| + Instruction::CastOps &LLVMOpcode);
|
| +
|
| +/// Converts the NaCl (bitcode file) linkage type to the corresponding
|
| +/// LLVM linkage type. Returns true if the conversion
|
| +/// succeeds. Otherwise sets LLVMLinkage to
|
| +/// GlobalValue::InternalLinkage and returns false.
|
| +bool DecodeLinkage(uint64_t NaClLinkage,
|
| + GlobalValue::LinkageTypes &LLVMLinkage);
|
| +
|
| +/// Converts the NaCl (bitcode file) binary opcode to the
|
| +/// corresponding LLVM binary opcode, assuming that the operator
|
| +/// operates on OpType. Returns true if the conversion
|
| +/// succeeds. Otherwise sets LLVMOpcode to Instruction::Add and
|
| +/// returns false.
|
| +bool DecodeBinaryOpcode(uint64_t NaClOpcode, Type *OpType,
|
| + Instruction::BinaryOps &LLVMOpcode);
|
| +
|
| +/// Converts the NaCl (bitcode file) calling convention value to the
|
| +/// corresponding LLVM calling conventions. Returns true if the
|
| +/// conversion succeeds. Otherwise sets LLVMCallingConv to
|
| +/// CallingConv::C and returns false.
|
| +bool DecodeCallingConv(uint64_t NaClCallingConv,
|
| + CallingConv::ID &LLVMCallingConv);
|
| +
|
| +/// Converts the NaCl (bitcode file) float comparison predicate to the
|
| +/// corresponding LLVM float comparison predicate. Returns true if the
|
| +/// conversion succeeds. Otherwise sets LLVMPredicate to
|
| +/// CmpInst::FCMP_FALSE and returns false.
|
| +bool DecodeFcmpPredicate(uint64_t NaClPredicate,
|
| + CmpInst::Predicate &LLVMPredicate);
|
| +
|
| +/// Converts the NaCl (bitcode file) integer comparison predicate to
|
| +/// the corresponding LLVM integer comparison predicate. Returns true
|
| +/// if the conversion succeeds. Otherwise sets LLVMPredicate to
|
| +/// CmpInst::ICMP_EQ and returns false.
|
| +bool DecodeIcmpPredicate(uint64_t NaClPredicate,
|
| + CmpInst::Predicate &LLVMPredicate);
|
| +
|
| +}
|
| +}
|
| +
|
| +#endif
|
|
|