//===-- TargetMachine.cpp - General Target Information ---------------------==//
//
// This file describes the general parts of a Target machine.
-// This file also implements the InstInfo interface as well...
+// This file also implements MachineInstrInfo and MachineCacheInfo.
//
//===----------------------------------------------------------------------===//
+#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/MachineInstrInfo.h"
-#include "llvm/DerivedTypes.h"
+#include "llvm/Target/MachineCacheInfo.h"
+#include "llvm/Function.h"
//---------------------------------------------------------------------------
// class TargetMachine
uint64_t maxImmedValue = maxImmedConstant(opCode, isSignExtended);
if (maxImmedValue != 0)
{
+ // NEED TO HANDLE UNSIGNED VALUES SINCE THEY MAY BECOME MUCH
+ // SMALLER AFTER CASTING TO SIGN-EXTENDED int, short, or char.
+ // See CreateUIntSetInstruction in SparcInstrInfo.cpp.
+
// Now check if the constant fits
if (intValue <= (int64_t) maxImmedValue &&
intValue >= -((int64_t) maxImmedValue+1))
return false;
}
+
+
+//---------------------------------------------------------------------------
+// class MachineCacheInfo
+//
+// Purpose:
+// Describes properties of the target cache architecture.
+//---------------------------------------------------------------------------
+
+/*ctor*/
+MachineCacheInfo::MachineCacheInfo(const TargetMachine& tgt)
+ : target(tgt)
+{
+ Initialize();
+}
+
+void
+MachineCacheInfo::Initialize()
+{
+ numLevels = 2;
+ cacheLineSizes.push_back(16); cacheLineSizes.push_back(32);
+ cacheSizes.push_back(1 << 15); cacheSizes.push_back(1 << 20);
+ cacheAssoc.push_back(1); cacheAssoc.push_back(4);
+}