From 14eee2a3258e6506bb09ba229b38e338ec0dec5f Mon Sep 17 00:00:00 2001 From: chous Date: Sat, 16 Mar 2013 22:56:21 +0100 Subject: [PATCH] Added support for invokedynamic opcode. --- shlr/java/code.c | 1 + shlr/java/ops.c | 1 + 2 files changed, 2 insertions(+) diff --git a/shlr/java/code.c b/shlr/java/code.c index 9cfb1edffe..1cbb5c9f43 100644 --- a/shlr/java/code.c +++ b/shlr/java/code.c @@ -101,6 +101,7 @@ int java_print_opcode(ut64 addr, int idx, const ut8 *bytes, char *output, int ou case 0xb7: // invokespecial case 0xb8: // invokestatic case 0xb9: // invokeinterface + case 0xba: // invokedynamic java_resolve ((int)USHORT (bytes, 1)-1, arg); snprintf (output, outlen, "%s %s", java_ops[idx].name, arg); return java_ops[idx].size; diff --git a/shlr/java/ops.c b/shlr/java/ops.c index b4e953dccf..f1bf0b76d1 100644 --- a/shlr/java/ops.c +++ b/shlr/java/ops.c @@ -134,6 +134,7 @@ struct java_op java_ops[] = { { "invokespecial" , 0xb7 , 3 } , { "invokestatic" , 0xb8 , 3 } , { "invokeinterface" , 0xb9 , 5 } , + { "invokedynamic" , 0xba , 5 } , { "ior" , 0x80 , 1 } , { "irem" , 0x70 , 1 } , { "ireturn" , 0xac , 1 } ,