Mercurial > hg > icedrobot > daneel
changeset 65:3a01108d39d2
Implemented rewriting of MOVE_RESULT, MOVE_RESULT_WIDE and MOVE_RESULT_OBJECT.
* rewriter/DexRewriter.java (visitInstrOp): Implemented.
author | Xerxes R?nby <xerxes@zafena.se> |
---|---|
date | Tue, 22 Mar 2011 17:08:24 +0100 |
parents | 7687468aed66 |
children | 7ce7ce3d84fc |
files | src/main/java/org/icedrobot/daneel/rewriter/DexRewriter.java |
diffstat | 1 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main/java/org/icedrobot/daneel/rewriter/DexRewriter.java Tue Mar 22 14:42:29 2011 +0100 +++ b/src/main/java/org/icedrobot/daneel/rewriter/DexRewriter.java Tue Mar 22 17:08:24 2011 +0100 @@ -481,6 +481,17 @@ mv.visitInsn(Register.getJavaOpcode(type, IRETURN)); } break; + case MOVE_RESULT: + case MOVE_RESULT_WIDE: + case MOVE_RESULT_OBJECT: { + // INVOKE + MOVE_RESULT is equivalent to INVOKE + STORE + if(returnRegisterType!=VOID_TYPE) + mv.visitVarInsn(Register.getJavaOpcode(returnRegisterType, + ISTORE), srcOrDst); + // TODO: What to do if returnRegisterType==VOID_TYPE? + returnRegisterType=NO_TYPE; + } + break; default: throw new UnsupportedOperationException("NYI " + opcode); }