fix the java source compiler
authorbrian <brian@brianweb.net>
Sun, 17 Jun 2007 10:39:56 +0000 (03:39 -0700)
committerbrian <brian@brianweb.net>
Sun, 17 Jun 2007 10:39:56 +0000 (03:39 -0700)
darcs-hash:20070617103956-24bed-46c55a51f8308e8ed5608c90f89598bdefe0a712.gz

src/org/ibex/nestedvm/JavaSourceCompiler.java

index 64a7d4d..fb6abe3 100644 (file)
@@ -290,7 +290,7 @@ public class JavaSourceCompiler extends Compiler {
             insn = nextInsn;
             nextInsn = (i == count-1) ? -1 : dis.readInt();
             if(addr >= endOfMethod) { endMethod(); startMethod(addr); }
             insn = nextInsn;
             nextInsn = (i == count-1) ? -1 : dis.readInt();
             if(addr >= endOfMethod) { endMethod(); startMethod(addr); }
-            if(jumpableAddresses==null || addr == startOfMethod || jumpableAddresses.contains(new Integer(addr))) {
+            if(jumpableAddresses==null || addr == startOfMethod || jumpableAddresses.get(new Integer(addr)) != null) {
                 p("case " + toHex(addr) + ":");
                 unreachable = false;
             } else if(unreachable) {
                 p("case " + toHex(addr) + ":");
                 unreachable = false;
             } else if(unreachable) {
@@ -427,6 +427,7 @@ public class JavaSourceCompiler extends Compiler {
                         break;
                     case 13: // BREAK
                         p( "throw new ExecutionException(\"Break\");");
                         break;
                     case 13: // BREAK
                         p( "throw new ExecutionException(\"Break\");");
+                        unreachable = true;
                         break;
                     case 16: // MFHI
                         p( "r"+rd+" = hi;");
                         break;
                     case 16: // MFHI
                         p( "r"+rd+" = hi;");