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

Alkis Evlogimenos alkis at cs.uiuc.edu
Wed Sep 22 16:49:58 PDT 2004



Changes in directory llvm-java/lib/Compiler:

Compiler.cpp updated: 1.111 -> 1.112
---
Log message:

Add stub for throwing an exception. This just calls abort.


---
Diffs of the changes:  (+7 -1)

Index: llvm-java/lib/Compiler/Compiler.cpp
diff -u llvm-java/lib/Compiler/Compiler.cpp:1.111 llvm-java/lib/Compiler/Compiler.cpp:1.112
--- llvm-java/lib/Compiler/Compiler.cpp:1.111	Wed Sep 22 18:15:31 2004
+++ llvm-java/lib/Compiler/Compiler.cpp	Wed Sep 22 18:49:47 2004
@@ -39,6 +39,7 @@
 
 #define LLVM_JAVA_ISINSTANCEOF  "llvm_java_IsInstanceOf"
 #define LLVM_JAVA_GETOBJECTCLASS "llvm_java_GetObjectClass"
+#define LLVM_JAVA_THROW "llvm_java_Throw"
 
 using namespace llvm;
 using namespace llvm::Java;
@@ -1477,7 +1478,12 @@
     }
 
     void do_athrow(unsigned bcI) {
-      assert(0 && "not implemented");
+      Value* objRef = opStack_.top(); opStack_.pop();
+      objRef = new CastInst(objRef, PointerType::get(ClassInfo::ObjectBaseTy),
+                            TMP, getBBAt(bcI));
+      Function* f = module_->getOrInsertFunction(
+        LLVM_JAVA_THROW, Type::IntTy, objRef->getType(), NULL);
+      new CallInst(f, objRef, TMP, getBBAt(bcI));
     }
 
     void do_checkcast(unsigned bcI, unsigned index) {






More information about the llvm-commits mailing list