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

Alkis Evlogimenos alkis at cs.uiuc.edu
Wed Jul 14 02:44:53 PDT 2004



Changes in directory llvm-java/lib/Compiler:

Compiler.cpp updated: 1.57 -> 1.58

---
Log message:

Move llvm::Java::Constant -> llvm::Constant conversion out of do_ldc.


---
Diffs of the changes:  (+19 -16)

Index: llvm-java/lib/Compiler/Compiler.cpp
diff -u llvm-java/lib/Compiler/Compiler.cpp:1.57 llvm-java/lib/Compiler/Compiler.cpp:1.58
--- llvm-java/lib/Compiler/Compiler.cpp:1.57	Wed Jul 14 04:16:41 2004
+++ llvm-java/lib/Compiler/Compiler.cpp	Wed Jul 14 04:44:43 2004
@@ -49,6 +49,23 @@
         return !isTwoSlotValue(v);
     }
 
+    llvm::Constant* getConstant(const Constant* c) {
+        if (dynamic_cast<const ConstantString*>(c))
+            assert(0 && "not implemented");
+        else if (const ConstantInteger* i =
+                 dynamic_cast<const ConstantInteger*>(c))
+            return ConstantSInt::get(Type::IntTy, i->getValue());
+        else if (const ConstantFloat* f = dynamic_cast<const ConstantFloat*>(c))
+            return ConstantFP::get(Type::FloatTy, f->getValue());
+        else if (const ConstantLong* l = dynamic_cast<const ConstantLong*>(c))
+            return ConstantSInt::get(Type::LongTy, l->getValue());
+        else if (const ConstantDouble* d =
+                 dynamic_cast<const ConstantDouble*>(c))
+            return ConstantFP::get(Type::DoubleTy, d->getValue());
+        else
+            return NULL; // FIXME: throw something
+    }
+
     struct Bytecode2BasicBlockMapper
         : public BytecodeParser<Bytecode2BasicBlockMapper> {
     public:
@@ -344,22 +361,8 @@
 
         void do_ldc(unsigned bcI, unsigned index) {
             const Constant* c = cf_->getConstantPool()[index];
-            if (dynamic_cast<const ConstantString*>(c))
-                assert(0 && "not implemented");
-            else if (const ConstantInteger* i =
-                     dynamic_cast<const ConstantInteger*>(c))
-                opStack_.push(ConstantSInt::get(Type::IntTy, i->getValue()));
-            else if (const ConstantFloat* f =
-                     dynamic_cast<const ConstantFloat*>(c))
-                opStack_.push(ConstantFP::get(Type::FloatTy, f->getValue()));
-            else if (const ConstantLong* l =
-                     dynamic_cast<const ConstantLong*>(c))
-                opStack_.push(ConstantSInt::get(Type::LongTy, l->getValue()));
-            else if (const ConstantDouble* d =
-                     dynamic_cast<const ConstantDouble*>(c))
-                opStack_.push(ConstantFP::get(Type::DoubleTy, d->getValue()));
-            else
-                ; // FIXME: throw something
+            assert(getConstant(c) && "Java constant not handled!");
+            opStack_.push(getConstant(c));
         }
 
         void do_load(unsigned bcI, JType type, unsigned index) {





More information about the llvm-commits mailing list