aboutsummaryrefslogtreecommitdiff
path: root/smali
diff options
context:
space:
mode:
authorBen Gruver <bgruv@google.com>2013-12-05 14:32:13 -0800
committerBen Gruver <bgruv@google.com>2013-12-08 17:44:15 -0800
commit304aadf6e680af54eaf867a8e705e046a1e7a906 (patch)
tree0e19eb0e10e21e74a788c6c3884c84977390b19b /smali
parent4f2620415d505a35d2d14b866cde10a54b1b7c8c (diff)
downloadsmali-304aadf6e680af54eaf867a8e705e046a1e7a906.tar.gz
Allow primitive types for 21c instruction format (e.g. check-cast)
Diffstat (limited to 'smali')
-rw-r--r--smali/src/main/antlr3/smaliParser.g4
-rw-r--r--smali/src/main/antlr3/smaliTreeWalker.g4
2 files changed, 4 insertions, 4 deletions
diff --git a/smali/src/main/antlr3/smaliParser.g b/smali/src/main/antlr3/smaliParser.g
index 7c0a1e56..563cda36 100644
--- a/smali/src/main/antlr3/smaliParser.g
+++ b/smali/src/main/antlr3/smaliParser.g
@@ -922,8 +922,8 @@ insn_format21c_string
insn_format21c_type
: //e.g. const-class v2, Lorg/jf/HelloWorld2/HelloWorld2;
- INSTRUCTION_FORMAT21c_TYPE REGISTER COMMA reference_type_descriptor
- -> ^(I_STATEMENT_FORMAT21c_TYPE[$start, "I_STATEMENT_FORMAT21c"] INSTRUCTION_FORMAT21c_TYPE REGISTER reference_type_descriptor);
+ INSTRUCTION_FORMAT21c_TYPE REGISTER COMMA nonvoid_type_descriptor
+ -> ^(I_STATEMENT_FORMAT21c_TYPE[$start, "I_STATEMENT_FORMAT21c"] INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor);
insn_format21ih
: //e.g. const/high16 v1, 1234
diff --git a/smali/src/main/antlr3/smaliTreeWalker.g b/smali/src/main/antlr3/smaliTreeWalker.g
index 74c35680..89eaf4a9 100644
--- a/smali/src/main/antlr3/smaliTreeWalker.g
+++ b/smali/src/main/antlr3/smaliTreeWalker.g
@@ -840,13 +840,13 @@ insn_format21c_string
insn_format21c_type
: //e.g. const-class v2, org/jf/HelloWorld2/HelloWorld2
- ^(I_STATEMENT_FORMAT21c_TYPE INSTRUCTION_FORMAT21c_TYPE REGISTER reference_type_descriptor)
+ ^(I_STATEMENT_FORMAT21c_TYPE INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor)
{
Opcode opcode = opcodes.getOpcodeByName($INSTRUCTION_FORMAT21c_TYPE.text);
short regA = parseRegister_byte($REGISTER.text);
$method::methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA,
- dexBuilder.internTypeReference($reference_type_descriptor.type)));
+ dexBuilder.internTypeReference($nonvoid_type_descriptor.type)));
};
insn_format21ih