summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/FastISelEmitter.cpp
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2008-08-25 23:58:18 +0000
committerOwen Anderson <resistor@mac.com>2008-08-25 23:58:18 +0000
commit8dd01ccdd832d05adb8877ffdc50bc128745fd07 (patch)
tree200bec75a2b86d3ad7fc785963330bb40d8d773e /llvm/utils/TableGen/FastISelEmitter.cpp
parent5952cca7d13d7acf87bad9b5fbbfb129669aae4c (diff)
downloadbcm5719-llvm-8dd01ccdd832d05adb8877ffdc50bc128745fd07.tar.gz
bcm5719-llvm-8dd01ccdd832d05adb8877ffdc50bc128745fd07.zip
Add a RetVT parameter to emitted FastISel methods, so that we will be able to pass the desired return
type down. This is not currently used. llvm-svn: 55345
Diffstat (limited to 'llvm/utils/TableGen/FastISelEmitter.cpp')
-rw-r--r--llvm/utils/TableGen/FastISelEmitter.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/llvm/utils/TableGen/FastISelEmitter.cpp b/llvm/utils/TableGen/FastISelEmitter.cpp
index bd0fc1350ca..cbff9f151d0 100644
--- a/llvm/utils/TableGen/FastISelEmitter.cpp
+++ b/llvm/utils/TableGen/FastISelEmitter.cpp
@@ -268,14 +268,16 @@ void FastISelEmitter::run(std::ostream &OS) {
OS << " unsigned FastEmit_" << getLegalCName(Opcode)
<< "_" << getLegalCName(getName(VT)) << "_";
Operands.PrintManglingSuffix(OS);
- OS << "(";
+ OS << "(MVT::SimpleValueType RetVT";
+ if (!Operands.empty())
+ OS << ", ";
Operands.PrintParameters(OS);
OS << ");\n";
}
OS << " unsigned FastEmit_" << getLegalCName(Opcode) << "_";
Operands.PrintManglingSuffix(OS);
- OS << "(MVT::SimpleValueType VT";
+ OS << "(MVT::SimpleValueType VT, MVT::SimpleValueType RetVT";
if (!Operands.empty())
OS << ", ";
Operands.PrintParameters(OS);
@@ -284,7 +286,7 @@ void FastISelEmitter::run(std::ostream &OS) {
OS << " unsigned FastEmit_";
Operands.PrintManglingSuffix(OS);
- OS << "(MVT::SimpleValueType VT, ISD::NodeType Opcode";
+ OS << "(MVT::SimpleValueType VT, MVT::SimpleValueType RetVT, ISD::NodeType Opcode";
if (!Operands.empty())
OS << ", ";
Operands.PrintParameters(OS);
@@ -341,7 +343,9 @@ void FastISelEmitter::run(std::ostream &OS) {
<< getLegalCName(Opcode)
<< "_" << getLegalCName(getName(VT)) << "_";
Operands.PrintManglingSuffix(OS);
- OS << "(";
+ OS << "(MVT::SimpleValueType RetVT";
+ if (!Operands.empty())
+ OS << ", ";
Operands.PrintParameters(OS);
OS << ") {\n";
@@ -382,7 +386,7 @@ void FastISelEmitter::run(std::ostream &OS) {
OS << "unsigned FastISel::FastEmit_"
<< getLegalCName(Opcode) << "_";
Operands.PrintManglingSuffix(OS);
- OS << "(MVT::SimpleValueType VT";
+ OS << "(MVT::SimpleValueType VT, MVT::SimpleValueType RetVT";
if (!Operands.empty())
OS << ", ";
Operands.PrintParameters(OS);
@@ -395,7 +399,9 @@ void FastISelEmitter::run(std::ostream &OS) {
OS << " case " << TypeName << ": return FastEmit_"
<< getLegalCName(Opcode) << "_" << getLegalCName(TypeName) << "_";
Operands.PrintManglingSuffix(OS);
- OS << "(";
+ OS << "(RetVT";
+ if (!Operands.empty())
+ OS << ", ";
Operands.PrintArguments(OS);
OS << ");\n";
}
@@ -412,7 +418,7 @@ void FastISelEmitter::run(std::ostream &OS) {
// on opcode and type.
OS << "unsigned FastISel::FastEmit_";
Operands.PrintManglingSuffix(OS);
- OS << "(MVT::SimpleValueType VT, ISD::NodeType Opcode";
+ OS << "(MVT::SimpleValueType VT, MVT::SimpleValueType RetVT, ISD::NodeType Opcode";
if (!Operands.empty())
OS << ", ";
Operands.PrintParameters(OS);
@@ -425,7 +431,7 @@ void FastISelEmitter::run(std::ostream &OS) {
OS << " case " << Opcode << ": return FastEmit_"
<< getLegalCName(Opcode) << "_";
Operands.PrintManglingSuffix(OS);
- OS << "(VT";
+ OS << "(VT, RetVT";
if (!Operands.empty())
OS << ", ";
Operands.PrintArguments(OS);
OpenPOWER on IntegriCloud