aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2001-11-08 04:47:06 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2001-11-08 04:47:06 +0000
commitbe49526193c5d8856d0b3c2721dfa6a4c4010d6d (patch)
treecb28dac5901991e22ffd117debed336b9850888e /lib/Target
parentebfa232e9dd5dbfedc8a4d2f6c58c0828f329e8c (diff)
downloadexternal_llvm-be49526193c5d8856d0b3c2721dfa6a4c4010d6d.zip
external_llvm-be49526193c5d8856d0b3c2721dfa6a4c4010d6d.tar.gz
external_llvm-be49526193c5d8856d0b3c2721dfa6a4c4010d6d.tar.bz2
Major overhaul of stack frame management.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1185 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/SparcV9/InstrSelection/InstrForest.cpp9
-rw-r--r--lib/Target/SparcV9/InstrSelection/InstrSelection.cpp2
-rw-r--r--lib/Target/SparcV9/InstrSelection/InstrSelectionSupport.cpp4
3 files changed, 12 insertions, 3 deletions
diff --git a/lib/Target/SparcV9/InstrSelection/InstrForest.cpp b/lib/Target/SparcV9/InstrSelection/InstrForest.cpp
index 199ed65..d460bb7 100644
--- a/lib/Target/SparcV9/InstrSelection/InstrForest.cpp
+++ b/lib/Target/SparcV9/InstrSelection/InstrForest.cpp
@@ -80,6 +80,15 @@ InstructionNode::InstructionNode(Instruction* I)
{
opLabel = opLabel + 100; // load/getElem with index vector
}
+ else if (opLabel == Instruction::And ||
+ opLabel == Instruction::Or ||
+ opLabel == Instruction::Xor ||
+ opLabel == Instruction::Not)
+ {
+ // Distinguish bitwise operators from logical operators!
+ if (I->getType() != Type::BoolTy)
+ opLabel = opLabel + 100; // bitwise operator
+ }
else if (opLabel == Instruction::Cast)
{
const Type *ITy = I->getType();
diff --git a/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp b/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp
index abbd2f9..fafe023 100644
--- a/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp
+++ b/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp
@@ -130,7 +130,7 @@ SelectInstructionsForMethod(Method* method, TargetMachine &target)
{
cout << endl
<< "*** Machine instructions after INSTRUCTION SELECTION" << endl;
- method->getMachineCode().dump();
+ MachineCodeForMethod::get(method).dump();
}
return false;
diff --git a/lib/Target/SparcV9/InstrSelection/InstrSelectionSupport.cpp b/lib/Target/SparcV9/InstrSelection/InstrSelectionSupport.cpp
index 88fd4a4..0a6d7d3 100644
--- a/lib/Target/SparcV9/InstrSelection/InstrSelectionSupport.cpp
+++ b/lib/Target/SparcV9/InstrSelection/InstrSelectionSupport.cpp
@@ -337,7 +337,7 @@ FixConstantOperandsForInstr(Instruction* vmInstr,
if (constantThatMustBeLoaded)
{ // register the value so it is emitted in the assembly
- method->getMachineCode().addToConstantPool(
+ MachineCodeForMethod::get(method).addToConstantPool(
cast<ConstPoolVal>(opValue));
}
}
@@ -372,7 +372,7 @@ FixConstantOperandsForInstr(Instruction* vmInstr,
if (isa<ConstPoolVal>(oldVal))
{ // register the value so it is emitted in the assembly
- method->getMachineCode().addToConstantPool(
+ MachineCodeForMethod::get(method).addToConstantPool(
cast<ConstPoolVal>(oldVal));
}
}