mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-13 08:26:02 +00:00
Well, add support for ct* for 21264 only.
21164 is broken until expand works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21692 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -31,6 +31,7 @@ using namespace llvm;
|
|||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
extern cl::opt<bool> EnableAlphaFTOI;
|
extern cl::opt<bool> EnableAlphaFTOI;
|
||||||
|
extern cl::opt<bool> EnableAlphaCT;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
@@ -234,7 +235,7 @@ void AlphaAsmPrinter::printConstantPool(MachineConstantPool *MCP) {
|
|||||||
bool AlphaAsmPrinter::doInitialization(Module &M)
|
bool AlphaAsmPrinter::doInitialization(Module &M)
|
||||||
{
|
{
|
||||||
AsmPrinter::doInitialization(M);
|
AsmPrinter::doInitialization(M);
|
||||||
if(EnableAlphaFTOI)
|
if(EnableAlphaFTOI || EnableAlphaCT)
|
||||||
O << "\t.arch ev6\n";
|
O << "\t.arch ev6\n";
|
||||||
else
|
else
|
||||||
O << "\t.arch ev56\n";
|
O << "\t.arch ev56\n";
|
||||||
|
@@ -36,9 +36,12 @@ namespace llvm {
|
|||||||
cl::opt<bool> EnableAlphaIDIV("enable-alpha-intfpdiv",
|
cl::opt<bool> EnableAlphaIDIV("enable-alpha-intfpdiv",
|
||||||
cl::desc("Use the FP div instruction for integer div when possible"),
|
cl::desc("Use the FP div instruction for integer div when possible"),
|
||||||
cl::Hidden);
|
cl::Hidden);
|
||||||
cl::opt<bool> EnableAlphaFTOI("enable-alpha-ftoi",
|
cl::opt<bool> EnableAlphaFTOI("enable-alpha-FTOI",
|
||||||
cl::desc("Enable use of ftoi* and itof* instructions (ev6 and higher)"),
|
cl::desc("Enable use of ftoi* and itof* instructions (ev6 and higher)"),
|
||||||
cl::Hidden);
|
cl::Hidden);
|
||||||
|
cl::opt<bool> EnableAlphaCT("enable-alpha-CT",
|
||||||
|
cl::desc("Enable use of the ctpop, ctlz, and cttz instructions"),
|
||||||
|
cl::Hidden);
|
||||||
cl::opt<bool> EnableAlphaCount("enable-alpha-count",
|
cl::opt<bool> EnableAlphaCount("enable-alpha-count",
|
||||||
cl::desc("Print estimates on live ins and outs"),
|
cl::desc("Print estimates on live ins and outs"),
|
||||||
cl::Hidden);
|
cl::Hidden);
|
||||||
@@ -76,9 +79,11 @@ namespace {
|
|||||||
setOperationAction(ISD::SREM , MVT::f32 , Expand);
|
setOperationAction(ISD::SREM , MVT::f32 , Expand);
|
||||||
setOperationAction(ISD::SREM , MVT::f64 , Expand);
|
setOperationAction(ISD::SREM , MVT::f64 , Expand);
|
||||||
|
|
||||||
// setOperationAction(ISD::CTPOP , MVT::i64 , Expand);
|
if (!EnableAlphaCT) {
|
||||||
// setOperationAction(ISD::CTTZ , MVT::i64 , Expand);
|
setOperationAction(ISD::CTPOP , MVT::i64 , Expand);
|
||||||
// setOperationAction(ISD::CTTZ , MVT::i64 , Expand);
|
setOperationAction(ISD::CTTZ , MVT::i64 , Expand);
|
||||||
|
setOperationAction(ISD::CTTZ , MVT::i64 , Expand);
|
||||||
|
}
|
||||||
|
|
||||||
//If this didn't legalize into a div....
|
//If this didn't legalize into a div....
|
||||||
// setOperationAction(ISD::SREM , MVT::i64, Expand);
|
// setOperationAction(ISD::SREM , MVT::i64, Expand);
|
||||||
|
Reference in New Issue
Block a user