forked from OSchip/llvm-project
parent
3b4e827f2b
commit
da6efdcd22
|
@ -17,32 +17,6 @@
|
|||
#include "Record.h"
|
||||
using namespace llvm;
|
||||
|
||||
static std::string FlattenVariants(const std::string &AsmString,
|
||||
unsigned Index) {
|
||||
StringRef Cur = AsmString;
|
||||
std::string Res = "";
|
||||
|
||||
for (;;) {
|
||||
std::pair<StringRef, StringRef> Split = Cur.split('{');
|
||||
|
||||
Res += Split.first;
|
||||
if (Split.second.empty())
|
||||
break;
|
||||
|
||||
std::pair<StringRef, StringRef> Inner = Cur.split('}');
|
||||
StringRef Selection = Inner.first;
|
||||
for (unsigned i = 0; i != Index; ++i)
|
||||
Selection = Selection.split('|').second;
|
||||
Selection = Selection.split('|').first;
|
||||
|
||||
Res += Selection;
|
||||
|
||||
Cur = Inner.second;
|
||||
}
|
||||
|
||||
return Res;
|
||||
}
|
||||
|
||||
void AsmMatcherEmitter::run(raw_ostream &OS) {
|
||||
CodeGenTarget Target;
|
||||
const std::vector<CodeGenRegister> &Registers = Target.getRegisters();
|
||||
|
@ -70,29 +44,4 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
|
|||
}
|
||||
OS << " return true;\n";
|
||||
OS << "}\n";
|
||||
|
||||
// Emit the function to match instructions.
|
||||
std::vector<const CodeGenInstruction*> NumberedInstructions;
|
||||
Target.getInstructionsByEnumValue(NumberedInstructions);
|
||||
|
||||
const std::map<std::string, CodeGenInstruction> &Instructions =
|
||||
Target.getInstructions();
|
||||
for (std::map<std::string, CodeGenInstruction>::const_iterator
|
||||
it = Instructions.begin(), ie = Instructions.end(); it != ie; ++it) {
|
||||
const CodeGenInstruction &CGI = it->second;
|
||||
|
||||
if (it->first != "SUB8rr")
|
||||
continue;
|
||||
|
||||
/*
|
||||
def SUB8rr : I<0x28, MRMDestReg, (outs GR8:$dst), (ins GR8:$src1, GR8:$src2),
|
||||
"sub{b}\t{$src2, $dst|$dst, $src2}",
|
||||
[(set GR8:$dst, (sub GR8:$src1, GR8:$src2)),
|
||||
(implicit EFLAGS)]>;
|
||||
*/
|
||||
|
||||
outs() << it->first << " "
|
||||
<< FlattenVariants(CGI.AsmString, 0)
|
||||
<< "\n";
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue