mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-08 06:32:24 +00:00
Allows instructions which no explicit operands. e.g. X86 RET which has but
an implicit flag operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24916 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
35186bacc3
commit
87bddeb2af
@ -1125,22 +1125,21 @@ void DAGISelEmitter::ParseInstructions() {
|
||||
|
||||
CodeGenInstruction &InstInfo =Target.getInstruction(Instrs[i]->getName());
|
||||
|
||||
// Doesn't even define a result?
|
||||
if (InstInfo.OperandList.size() == 0)
|
||||
continue;
|
||||
|
||||
// Note: Removed if (InstInfo.OperandList.size() == 0) continue;
|
||||
// It's possible for some instruction, e.g. RET for X86 that only has an
|
||||
// implicit flag operand.
|
||||
// FIXME: temporary hack...
|
||||
if (InstInfo.isReturn || InstInfo.isBranch || InstInfo.isCall ||
|
||||
InstInfo.isStore) {
|
||||
// These produce no results
|
||||
for (unsigned j = 0, e = InstInfo.OperandList.size(); j != e; ++j)
|
||||
for (unsigned j = 0, e = InstInfo.OperandList.size(); j < e; ++j)
|
||||
Operands.push_back(InstInfo.OperandList[j].Rec);
|
||||
} else {
|
||||
// Assume the first operand is the result.
|
||||
Results.push_back(InstInfo.OperandList[0].Rec);
|
||||
|
||||
// The rest are inputs.
|
||||
for (unsigned j = 1, e = InstInfo.OperandList.size(); j != e; ++j)
|
||||
for (unsigned j = 1, e = InstInfo.OperandList.size(); j < e; ++j)
|
||||
Operands.push_back(InstInfo.OperandList[j].Rec);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user