[llvm-commits] CVS: llvm-java/lib/Compiler/OperandStack.cpp

Alkis Evlogimenos alkis at cs.uiuc.edu
Sun Nov 7 01:42:57 PST 2004



Changes in directory llvm-java/lib/Compiler:

OperandStack.cpp updated: 1.2 -> 1.3
---
Log message:

Automatically convert jbool, jchar, jbyte and jshort to a jint when
pushing it on the operand stack.


---
Diffs of the changes:  (+9 -0)

Index: llvm-java/lib/Compiler/OperandStack.cpp
diff -u llvm-java/lib/Compiler/OperandStack.cpp:1.2 llvm-java/lib/Compiler/OperandStack.cpp:1.3
--- llvm-java/lib/Compiler/OperandStack.cpp:1.2	Thu Oct 28 14:37:24 2004
+++ llvm-java/lib/Compiler/OperandStack.cpp	Sun Nov  7 03:42:46 2004
@@ -21,6 +21,15 @@
 
 void OperandStack::push(Value* value, BasicBlock* insertAtEnd)
 {
+  const Type* valueTy = value->getType();
+  // Values of jboolean, jbyte, jchar and jshort are extended to a
+  // jint when pushed on the operand stack.
+  if (valueTy == Type::BoolTy ||
+      valueTy == Type::SByteTy ||
+      valueTy == Type::UShortTy ||
+      valueTy == Type::ShortTy)
+    value = new CastInst(value, Type::IntTy, "int-extend", insertAtEnd);
+
   TheStack.push(new AllocaInst(value->getType(),
 			       NULL,
 			       "opStack" + utostr(TheStack.size()),






More information about the llvm-commits mailing list