Implemented generic serialization of APFloat.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43829 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Ted Kremenek 2007-11-07 18:39:22 +00:00
parent 2e6452ca0c
commit c47dfdde24
3 changed files with 52 additions and 0 deletions

View File

@ -102,6 +102,7 @@
// APInt contains static functions implementing bignum arithmetic. // APInt contains static functions implementing bignum arithmetic.
#include "llvm/ADT/APInt.h" #include "llvm/ADT/APInt.h"
#include "llvm/Bitcode/SerializationFwd.h"
#include "llvm/CodeGen/ValueTypes.h" #include "llvm/CodeGen/ValueTypes.h"
namespace llvm { namespace llvm {
@ -181,6 +182,12 @@ namespace llvm {
explicit APFloat(const APInt &, bool isIEEE = false); explicit APFloat(const APInt &, bool isIEEE = false);
APFloat(const APFloat &); APFloat(const APFloat &);
~APFloat(); ~APFloat();
/// @brief Used by the Bitcode serializer to emit APInts to Bitcode.
void Emit(Serializer& S) const;
/// @brief Used by the Bitcode deserializer to deserialize APInts.
static APFloat ReadVal(Deserializer& D);
/* Arithmetic. */ /* Arithmetic. */
opStatus add(const APFloat &, roundingMode); opStatus add(const APFloat &, roundingMode);

View File

@ -0,0 +1,24 @@
//===-- SerializeAPInt.cpp - Serialization for APFloat ---------*- C++ -*--===//
//
// The LLVM Compiler Infrastructure
//
// This file was developed by Ted Kremenek and is distributed under the
// University of Illinois Open Source License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file implements deserialization of APFloat.
//
//===----------------------------------------------------------------------===//
#include "llvm/ADT/APFloat.h"
#include "llvm/Bitcode/Deserialize.h"
using namespace llvm;
APFloat APFloat::ReadVal(Deserializer& D) {
APInt x;
D.Read(x);
return APFloat(x);
}

View File

@ -0,0 +1,21 @@
//===-- SerializeAPInt.cpp - Serialization for APFloat ---------*- C++ -*--===//
//
// The LLVM Compiler Infrastructure
//
// This file was developed by Ted Kremenek and is distributed under the
// University of Illinois Open Source License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file implements serialization of APFloat.
//
//===----------------------------------------------------------------------===//
#include "llvm/ADT/APFloat.h"
#include "llvm/Bitcode/Serialize.h"
using namespace llvm;
void APFloat::Emit(Serializer& S) const {
S.Emit(convertToAPInt());
}