[llvm-commits] CVS: llvm-java/include/llvm/Java/BytecodeParser.h
Alkis Evlogimenos
alkis at cs.uiuc.edu
Fri Feb 4 11:53:02 PST 2005
Changes in directory llvm-java/include/llvm/Java:
BytecodeParser.h updated: 1.14 -> 1.15
---
Log message:
Pass the return address to the do_jsr call when parsing the
bytecode.
Modify the basic block builder to build basic blocks for jsr/rets as
well.
On a jsr push a dummy value on the operand stack so that we have a
valid operand stack.
---
Diffs of the changes: (+9 -5)
BytecodeParser.h | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
Index: llvm-java/include/llvm/Java/BytecodeParser.h
diff -u llvm-java/include/llvm/Java/BytecodeParser.h:1.14 llvm-java/include/llvm/Java/BytecodeParser.h:1.15
--- llvm-java/include/llvm/Java/BytecodeParser.h:1.14 Fri Dec 3 19:44:05 2004
+++ llvm-java/include/llvm/Java/BytecodeParser.h Fri Feb 4 13:52:50 2005
@@ -500,9 +500,11 @@
case GOTO:
THIS->do_goto(curBC + readSShort(code, i));
break;
- case JSR:
- THIS->do_jsr(curBC + readSShort(code, i));
+ case JSR: {
+ unsigned t = curBC + readSShort(code, i);
+ THIS->do_jsr(t, i + 1);
break;
+ }
case RET:
THIS->do_ret(readUByte(code, i));
break;
@@ -630,9 +632,11 @@
case GOTO_W:
THIS->do_goto(curBC + readSInt(code, i));
break;
- case JSR_W:
- THIS->do_jsr(curBC + readSInt(code, i));
+ case JSR_W: {
+ unsigned t = curBC + readSInt(code, i);
+ THIS->do_jsr(t, i + 1);
break;
+ }
case BREAKPOINT:
case IMPDEP1:
case IMPDEP2:
@@ -878,7 +882,7 @@
/// @brief called on GOTO and GOTO_W
void do_goto(unsigned target) { }
/// @brief called on JSR and JSR_W
- void do_jsr(unsigned target) { }
+ void do_jsr(unsigned target, unsigned retAddress) { }
/// @brief called on RET
void do_ret(unsigned index) { }
/// @brief called on TABLESWITCH and LOOKUPSWITCH
More information about the llvm-commits
mailing list