mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-10 02:36:06 +00:00
ed465f5407
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23904 91177308-0d34-0410-b5e6-96231b3b80d8
38 lines
1.2 KiB
C++
38 lines
1.2 KiB
C++
//===- AlphaSubtarget.cpp - Alpha Subtarget Information ---------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file was developed by Andrew Lenharth and is distributed under the
|
|
// University of Illinois Open Source License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file implements the Alpha specific subclass of TargetSubtarget.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "AlphaSubtarget.h"
|
|
#include "Alpha.h"
|
|
#include "llvm/Module.h"
|
|
#include "llvm/Support/CommandLine.h"
|
|
#include "llvm/Target/SubtargetFeature.h"
|
|
#include "AlphaGenSubtarget.inc"
|
|
using namespace llvm;
|
|
|
|
|
|
enum {
|
|
FeatureKVSize = sizeof(FeatureKV) / sizeof(SubtargetFeatureKV),
|
|
SubTypeKVSize = sizeof(SubTypeKV) / sizeof(SubtargetFeatureKV)
|
|
};
|
|
|
|
AlphaSubtarget::AlphaSubtarget(const Module &M, const std::string &FS)
|
|
: HasF2I(false), HasCT(false) {
|
|
std::string CPU = "generic";
|
|
uint32_t Bits =
|
|
SubtargetFeatures::Parse(FS, CPU,
|
|
SubTypeKV, SubTypeKVSize,
|
|
FeatureKV, FeatureKVSize);
|
|
HasF2I = (Bits & FeatureFIX) != 0;
|
|
HasCT = (Bits & FeatureCIX) != 0;
|
|
}
|