forked from OSchip/llvm-project
parent
7570e9c518
commit
1df278669d
|
@ -18,25 +18,19 @@
|
|||
#include "llvm/ADT/STLExtras.h"
|
||||
using namespace clang;
|
||||
|
||||
// TargetInfo Constructor.
|
||||
TargetInfo::TargetInfo(const std::string &T) : Triple(T) {
|
||||
// Set defaults. These should be overridden by concrete targets as needed.
|
||||
CharIsSigned = true;
|
||||
WCharWidth = WCharAlign = 32;
|
||||
FloatFormat = &llvm::APFloat::IEEEsingle;
|
||||
DoubleFormat = &llvm::APFloat::IEEEdouble;
|
||||
LongDoubleFormat = &llvm::APFloat::IEEEdouble;
|
||||
}
|
||||
|
||||
// Out of line virtual dtor for TargetInfo.
|
||||
TargetInfo::~TargetInfo() {}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// FIXME: These are temporary hacks.
|
||||
|
||||
const llvm::fltSemantics *TargetInfo::getFloatFormat() const {
|
||||
return &llvm::APFloat::IEEEsingle;
|
||||
}
|
||||
const llvm::fltSemantics *TargetInfo::getDoubleFormat() const {
|
||||
return &llvm::APFloat::IEEEdouble;
|
||||
}
|
||||
const llvm::fltSemantics *TargetInfo::getLongDoubleFormat() const {
|
||||
//Size = 80; Align = 32; // FIXME: implement correctly.
|
||||
//Format = &llvm::APFloat::x87DoubleExtended;
|
||||
return &llvm::APFloat::IEEEdouble;
|
||||
}
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
|
||||
|
|
|
@ -32,16 +32,14 @@ namespace Builtin { struct Info; }
|
|||
class TargetInfo {
|
||||
std::string Triple;
|
||||
protected:
|
||||
/// These are all caches for target values.
|
||||
// Target values set by the ctor of the actual target implementation. Default
|
||||
// values are specified by the TargetInfo constructor.
|
||||
bool CharIsSigned;
|
||||
unsigned WCharWidth, WCharAlign;
|
||||
const llvm::fltSemantics *FloatFormat, *DoubleFormat, *LongDoubleFormat;
|
||||
|
||||
// TargetInfo Constructor.
|
||||
TargetInfo(const std::string &T) : Triple(T) {
|
||||
// Set defaults. These should be overridden by concrete targets as needed.
|
||||
CharIsSigned = true;
|
||||
WCharWidth = WCharAlign = 32;
|
||||
}
|
||||
// TargetInfo Constructor. Default initializes all fields.
|
||||
TargetInfo(const std::string &T);
|
||||
|
||||
public:
|
||||
/// CreateTargetInfo - Return the target info object for the specified target
|
||||
|
@ -106,18 +104,20 @@ public:
|
|||
/// getFloatWidth/Align/Format - Return the size/align/format of 'float'.
|
||||
unsigned getFloatWidth() const { return 32; } // FIXME
|
||||
unsigned getFloatAlign() const { return 32; } // FIXME
|
||||
const llvm::fltSemantics *getFloatFormat() const;
|
||||
const llvm::fltSemantics *getFloatFormat() const { return FloatFormat; }
|
||||
|
||||
/// getDoubleWidth/Align/Format - Return the size/align/format of 'double'.
|
||||
unsigned getDoubleWidth() const { return 64; } // FIXME
|
||||
unsigned getDoubleAlign() const { return 32; } // FIXME
|
||||
const llvm::fltSemantics *getDoubleFormat() const;
|
||||
const llvm::fltSemantics *getDoubleFormat() const { return DoubleFormat; }
|
||||
|
||||
/// getLongDoubleWidth/Align/Format - Return the size/align/format of 'long
|
||||
/// double'.
|
||||
unsigned getLongDoubleWidth() const { return 64; } // FIXME
|
||||
unsigned getLongDoubleAlign() const { return 64; } // FIXME
|
||||
const llvm::fltSemantics *getLongDoubleFormat() const;
|
||||
const llvm::fltSemantics *getLongDoubleFormat() const {
|
||||
return LongDoubleFormat;
|
||||
}
|
||||
|
||||
|
||||
/// getIntMaxTWidth - Return the size of intmax_t and uintmax_t for this
|
||||
|
|
Loading…
Reference in New Issue