diff --git a/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/MethodAnalyzer.java b/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/MethodAnalyzer.java
index d90226a..b1d71a9 100644
--- a/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/MethodAnalyzer.java
+++ b/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/MethodAnalyzer.java
@@ -1098,6 +1098,20 @@
             case INVOKE_OBJECT_INIT_JUMBO:
                 analyzeInvokeObjectInitJumbo(analyzedInstruction);
                 return true;
+            case IGET_VOLATILE_JUMBO:
+            case IGET_WIDE_VOLATILE_JUMBO:
+            case IGET_OBJECT_VOLATILE_JUMBO:
+            case IPUT_VOLATILE_JUMBO:
+            case IPUT_WIDE_VOLATILE_JUMBO:
+            case IPUT_OBJECT_VOLATILE_JUMBO:
+            case SGET_VOLATILE_JUMBO:
+            case SGET_WIDE_VOLATILE_JUMBO:
+            case SGET_OBJECT_VOLATILE_JUMBO:
+            case SPUT_VOLATILE_JUMBO:
+            case SPUT_WIDE_VOLATILE_JUMBO:
+            case SPUT_OBJECT_VOLATILE_JUMBO:
+                analyzePutGetVolatile(analyzedInstruction);
+                return true;
             default:
                 assert false;
                 return true;
@@ -1593,6 +1607,18 @@
             case SGET_OBJECT_VOLATILE:
             case SPUT_OBJECT_VOLATILE:
             case INVOKE_OBJECT_INIT_JUMBO:
+            case IGET_VOLATILE_JUMBO:
+            case IGET_WIDE_VOLATILE_JUMBO:
+            case IGET_OBJECT_VOLATILE_JUMBO:
+            case IPUT_VOLATILE_JUMBO:
+            case IPUT_WIDE_VOLATILE_JUMBO:
+            case IPUT_OBJECT_VOLATILE_JUMBO:
+            case SGET_VOLATILE_JUMBO:
+            case SGET_WIDE_VOLATILE_JUMBO:
+            case SGET_OBJECT_VOLATILE_JUMBO:
+            case SPUT_VOLATILE_JUMBO:
+            case SPUT_WIDE_VOLATILE_JUMBO:
+            case SPUT_OBJECT_VOLATILE_JUMBO:
                 //TODO: throw validation exception?
             default:
                 assert false;
@@ -3627,14 +3653,23 @@
 
         if (analyzedInstruction.instruction.opcode.isOdexedStaticVolatile()) {
             SingleRegisterInstruction instruction = (SingleRegisterInstruction)analyzedInstruction.instruction;
-
-            deodexedInstruction = new Instruction21c(opcode, (byte)instruction.getRegisterA(),
-                fieldIdItem);
+            if (analyzedInstruction.instruction.opcode.format == Format.Format21c) {
+                deodexedInstruction = new Instruction21c(opcode, (byte)instruction.getRegisterA(), fieldIdItem);
+            } else {
+                assert(analyzedInstruction.instruction.opcode.format == Format.Format41c);
+                deodexedInstruction = new Instruction41c(opcode, (byte)instruction.getRegisterA(), fieldIdItem);
+            }
         } else {
             TwoRegisterInstruction instruction = (TwoRegisterInstruction)analyzedInstruction.instruction;
 
-            deodexedInstruction = new Instruction22c(opcode, (byte)instruction.getRegisterA(),
-                (byte)instruction.getRegisterB(), fieldIdItem);
+            if (analyzedInstruction.instruction.opcode.format == Format.Format22c) {
+                deodexedInstruction = new Instruction22c(opcode, (byte)instruction.getRegisterA(),
+                    (byte)instruction.getRegisterB(), fieldIdItem);
+            } else {
+                assert(analyzedInstruction.instruction.opcode.format == Format.Format52c);
+                deodexedInstruction = new Instruction52c(opcode, (byte)instruction.getRegisterA(),
+                    (byte)instruction.getRegisterB(), fieldIdItem);
+            }
         }
 
         analyzedInstruction.setDeodexedInstruction(deodexedInstruction);
diff --git a/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/OdexedFieldInstructionMapper.java b/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/OdexedFieldInstructionMapper.java
index 2facd98..644cbd3 100644
--- a/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/OdexedFieldInstructionMapper.java
+++ b/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/OdexedFieldInstructionMapper.java
@@ -178,6 +178,107 @@
             }
     };
 
+    private static Opcode[][][][] jumboOpcodeMap = new Opcode[][][][] {
+            //get opcodes
+            new Opcode[][][] {
+                    //iget volatile
+                    new Opcode[][] {
+                            //odexed
+                            new Opcode[] {
+                                /*Z*/   Opcode.IGET_VOLATILE_JUMBO,
+                                /*B*/   Opcode.IGET_VOLATILE_JUMBO,
+                                /*S*/   Opcode.IGET_VOLATILE_JUMBO,
+                                /*C*/   Opcode.IGET_VOLATILE_JUMBO,
+                                /*I,F*/ Opcode.IGET_VOLATILE_JUMBO,
+                                /*J,D*/ Opcode.IGET_WIDE_VOLATILE_JUMBO,
+                                /*L,[*/ Opcode.IGET_OBJECT_VOLATILE_JUMBO
+                            },
+                            //deodexed
+                            new Opcode[] {
+                                /*Z*/   Opcode.IGET_BOOLEAN_JUMBO,
+                                /*B*/   Opcode.IGET_BYTE_JUMBO,
+                                /*S*/   Opcode.IGET_SHORT_JUMBO,
+                                /*C*/   Opcode.IGET_CHAR_JUMBO,
+                                /*I,F*/ Opcode.IGET_JUMBO,
+                                /*J,D*/ Opcode.IGET_WIDE_JUMBO,
+                                /*L,[*/ Opcode.IGET_OBJECT_JUMBO
+                            }
+                    },
+                    //sget volatile
+                    new Opcode[][] {
+                            //odexed
+                            new Opcode[] {
+                                /*Z*/   Opcode.SGET_VOLATILE_JUMBO,
+                                /*B*/   Opcode.SGET_VOLATILE_JUMBO,
+                                /*S*/   Opcode.SGET_VOLATILE_JUMBO,
+                                /*C*/   Opcode.SGET_VOLATILE_JUMBO,
+                                /*I,F*/ Opcode.SGET_VOLATILE_JUMBO,
+                                /*J,D*/ Opcode.SGET_WIDE_VOLATILE_JUMBO,
+                                /*L,[*/ Opcode.SGET_OBJECT_VOLATILE_JUMBO
+                            },
+                            //deodexed
+                            new Opcode[] {
+                                /*Z*/   Opcode.SGET_BOOLEAN_JUMBO,
+                                /*B*/   Opcode.SGET_BYTE_JUMBO,
+                                /*S*/   Opcode.SGET_SHORT_JUMBO,
+                                /*C*/   Opcode.SGET_CHAR_JUMBO,
+                                /*I,F*/ Opcode.SGET_JUMBO,
+                                /*J,D*/ Opcode.SGET_WIDE_JUMBO,
+                                /*L,[*/ Opcode.SGET_OBJECT_JUMBO
+                            }
+                    }
+            },
+            //put opcodes
+            new Opcode[][][] {
+                    //iput volatile
+                    new Opcode[][] {
+                            //odexed
+                            new Opcode[] {
+                                /*Z*/   Opcode.IPUT_VOLATILE_JUMBO,
+                                /*B*/   Opcode.IPUT_VOLATILE_JUMBO,
+                                /*S*/   Opcode.IPUT_VOLATILE_JUMBO,
+                                /*C*/   Opcode.IPUT_VOLATILE_JUMBO,
+                                /*I,F*/ Opcode.IPUT_VOLATILE_JUMBO,
+                                /*J,D*/ Opcode.IPUT_WIDE_VOLATILE_JUMBO,
+                                /*L,[*/ Opcode.IPUT_OBJECT_VOLATILE_JUMBO
+                            },
+                            //deodexed
+                            new Opcode[] {
+                                /*Z*/   Opcode.IPUT_BOOLEAN_JUMBO,
+                                /*B*/   Opcode.IPUT_BYTE_JUMBO,
+                                /*S*/   Opcode.IPUT_SHORT_JUMBO,
+                                /*C*/   Opcode.IPUT_CHAR_JUMBO,
+                                /*I,F*/ Opcode.IPUT_JUMBO,
+                                /*J,D*/ Opcode.IPUT_WIDE_JUMBO,
+                                /*L,[*/ Opcode.IPUT_OBJECT_JUMBO
+                            }
+                    },
+                    //sput volatile
+                    new Opcode[][] {
+                            //odexed
+                            new Opcode[] {
+                                /*Z*/   Opcode.SPUT_VOLATILE_JUMBO,
+                                /*B*/   Opcode.SPUT_VOLATILE_JUMBO,
+                                /*S*/   Opcode.SPUT_VOLATILE_JUMBO,
+                                /*C*/   Opcode.SPUT_VOLATILE_JUMBO,
+                                /*I,F*/ Opcode.SPUT_VOLATILE_JUMBO,
+                                /*J,D*/ Opcode.SPUT_WIDE_VOLATILE_JUMBO,
+                                /*L,[*/ Opcode.SPUT_OBJECT_VOLATILE_JUMBO
+                            },
+                            //deodexed
+                            new Opcode[] {
+                                /*Z*/   Opcode.SPUT_BOOLEAN_JUMBO,
+                                /*B*/   Opcode.SPUT_BYTE_JUMBO,
+                                /*S*/   Opcode.SPUT_SHORT_JUMBO,
+                                /*C*/   Opcode.SPUT_CHAR_JUMBO,
+                                /*I,F*/ Opcode.SPUT_JUMBO,
+                                /*J,D*/ Opcode.SPUT_WIDE_JUMBO,
+                                /*L,[*/ Opcode.SPUT_OBJECT_JUMBO
+                            }
+                    }
+            }
+    };
+
     private static int getTypeIndex(char type) {
         switch (type) {
             case 'Z':
@@ -214,12 +315,20 @@
     }
 
     static Opcode getAndCheckDeodexedOpcodeForOdexedOpcode(String fieldType, Opcode odexedOpcode) {
+        boolean jumbo = odexedOpcode.isJumboOpcode();
         int opcodeType = odexedOpcode.setsRegister()?0:1;
         int opcodeSubType = getOpcodeSubtype(odexedOpcode);
         int typeIndex = getTypeIndex(fieldType.charAt(0));
 
-        Opcode correctOdexedOpcode = opcodeMap[opcodeType][opcodeSubType][0][typeIndex];
-        Opcode deodexedOpcode = opcodeMap[opcodeType][opcodeSubType][1][typeIndex];
+        Opcode correctOdexedOpcode, deodexedOpcode;
+
+        if (jumbo) {
+            correctOdexedOpcode = jumboOpcodeMap[opcodeType][opcodeSubType-1][0][typeIndex];
+            deodexedOpcode = jumboOpcodeMap[opcodeType][opcodeSubType-1][1][typeIndex];
+        } else {
+            correctOdexedOpcode = opcodeMap[opcodeType][opcodeSubType][0][typeIndex];
+            deodexedOpcode = opcodeMap[opcodeType][opcodeSubType][1][typeIndex];
+        }
 
         if (correctOdexedOpcode != odexedOpcode) {
             throw new ValidationException(String.format("Incorrect field type \"%s\" for %s", fieldType,
diff --git a/dexlib/src/main/java/org/jf/dexlib/Code/Opcode.java b/dexlib/src/main/java/org/jf/dexlib/Code/Opcode.java
index 92b82ab..d1abc88 100644
--- a/dexlib/src/main/java/org/jf/dexlib/Code/Opcode.java
+++ b/dexlib/src/main/java/org/jf/dexlib/Code/Opcode.java
@@ -325,6 +325,18 @@
     INVOKE_INTERFACE_JUMBO((short)0xff26, "invoke-interface/jumbo", ReferenceType.method, Format.Format5rc, Opcode.CAN_THROW | Opcode.CAN_CONTINUE | Opcode.SETS_RESULT | Opcode.JUMBO_OPCODE),
 
     INVOKE_OBJECT_INIT_JUMBO((short)0xfff2, "invoke-object-init/jumbo", ReferenceType.method,  Format.Format5rc, Opcode.ODEX_ONLY | Opcode.CAN_THROW | Opcode.CAN_CONTINUE | Opcode.SETS_RESULT | Opcode.JUMBO_OPCODE),
+    IGET_VOLATILE_JUMBO((short)0xfff3, "iget-volatile/jumbo", ReferenceType.field, Format.Format52c, Opcode.ODEX_ONLY | Opcode.ODEXED_INSTANCE_VOLATILE | Opcode.CAN_THROW | Opcode.CAN_CONTINUE | Opcode.SETS_REGISTER | Opcode.JUMBO_OPCODE),
+    IGET_WIDE_VOLATILE_JUMBO((short)0xfff4, "iget-wide-volatile/jumbo", ReferenceType.field, Format.Format52c, Opcode.ODEX_ONLY | Opcode.ODEXED_INSTANCE_VOLATILE | Opcode.CAN_THROW | Opcode.CAN_CONTINUE | Opcode.SETS_REGISTER | Opcode.SETS_WIDE_REGISTER | Opcode.JUMBO_OPCODE),
+    IGET_OBJECT_VOLATILE_JUMBO((short)0xfff5, "iget-object-volatile/jumbo", ReferenceType.field, Format.Format52c, Opcode.ODEX_ONLY | Opcode.ODEXED_INSTANCE_VOLATILE | Opcode.CAN_THROW | Opcode.CAN_CONTINUE | Opcode.SETS_REGISTER | Opcode.JUMBO_OPCODE),
+    IPUT_VOLATILE_JUMBO((short)0xfff6, "iput-volatile/jumbo", ReferenceType.field, Format.Format52c, Opcode.ODEX_ONLY | Opcode.ODEXED_INSTANCE_VOLATILE | Opcode.CAN_THROW | Opcode.CAN_CONTINUE | Opcode.JUMBO_OPCODE),
+    IPUT_WIDE_VOLATILE_JUMBO((short)0xfff7, "iput-wide-volatile/jumbo", ReferenceType.field, Format.Format52c, Opcode.ODEX_ONLY | Opcode.ODEXED_INSTANCE_VOLATILE | Opcode.CAN_THROW | Opcode.CAN_CONTINUE | Opcode.JUMBO_OPCODE),
+    IPUT_OBJECT_VOLATILE_JUMBO((short)0xfff8, "iput-object-volatile/jumbo", ReferenceType.field, Format.Format52c, Opcode.ODEX_ONLY | Opcode.ODEXED_INSTANCE_VOLATILE | Opcode.CAN_THROW | Opcode.CAN_CONTINUE | Opcode.JUMBO_OPCODE),
+    SGET_VOLATILE_JUMBO((short)0xfff9, "sget-volatile/jumbo", ReferenceType.field, Format.Format41c, Opcode.ODEX_ONLY | Opcode.ODEXED_STATIC_VOLATILE | Opcode.CAN_THROW | Opcode.CAN_CONTINUE | Opcode.SETS_REGISTER | Opcode.JUMBO_OPCODE),
+    SGET_WIDE_VOLATILE_JUMBO((short)0xfffa, "sget-wide-volatile/jumbo", ReferenceType.field, Format.Format41c, Opcode.ODEX_ONLY | Opcode.ODEXED_STATIC_VOLATILE | Opcode.CAN_THROW | Opcode.CAN_CONTINUE | Opcode.SETS_REGISTER | Opcode.SETS_WIDE_REGISTER | Opcode.JUMBO_OPCODE),
+    SGET_OBJECT_VOLATILE_JUMBO((short)0xfffb, "sget-object-volatile/jumbo", ReferenceType.field, Format.Format41c, Opcode.ODEX_ONLY | Opcode.ODEXED_STATIC_VOLATILE | Opcode.CAN_THROW | Opcode.CAN_CONTINUE | Opcode.SETS_REGISTER | Opcode.JUMBO_OPCODE),
+    SPUT_VOLATILE_JUMBO((short)0xfffc, "sput-volatile/jumbo", ReferenceType.field, Format.Format41c, Opcode.ODEX_ONLY | Opcode.ODEXED_STATIC_VOLATILE | Opcode.CAN_THROW | Opcode.CAN_CONTINUE | Opcode.JUMBO_OPCODE),
+    SPUT_WIDE_VOLATILE_JUMBO((short)0xfffd, "sput-wide-volatile/jumbo", ReferenceType.field, Format.Format41c, Opcode.ODEX_ONLY | Opcode.ODEXED_STATIC_VOLATILE | Opcode.CAN_THROW | Opcode.CAN_CONTINUE | Opcode.JUMBO_OPCODE),
+    SPUT_OBJECT_VOLATILE_JUMBO((short)0xfffe, "sput-object-volatile/jumbo", ReferenceType.field, Format.Format41c, Opcode.ODEX_ONLY | Opcode.ODEXED_STATIC_VOLATILE | Opcode.CAN_THROW | Opcode.CAN_CONTINUE | Opcode.JUMBO_OPCODE);
 
     private static Opcode[] opcodesByValue;
     private static Opcode[] expandedOpcodesByValue;
@@ -436,7 +448,11 @@
                     SGET_CHAR_JUMBO, SGET_SHORT_JUMBO, SPUT_JUMBO, SPUT_WIDE_JUMBO, SPUT_OBJECT_JUMBO,
                     SPUT_BOOLEAN_JUMBO, SPUT_BYTE_JUMBO, SPUT_CHAR_JUMBO, SPUT_SHORT_JUMBO, INVOKE_VIRTUAL_JUMBO,
                     INVOKE_SUPER_JUMBO, INVOKE_DIRECT_JUMBO, INVOKE_STATIC_JUMBO, INVOKE_INTERFACE_JUMBO,
-                    INVOKE_OBJECT_INIT_RANGE, INVOKE_OBJECT_INIT_JUMBO);
+                    INVOKE_OBJECT_INIT_RANGE, INVOKE_OBJECT_INIT_JUMBO, IGET_VOLATILE_JUMBO, IGET_WIDE_VOLATILE_JUMBO,
+                    IGET_OBJECT_VOLATILE_JUMBO, IPUT_VOLATILE_JUMBO, IPUT_WIDE_VOLATILE_JUMBO,
+                    IPUT_OBJECT_VOLATILE_JUMBO, SGET_VOLATILE_JUMBO, SGET_WIDE_VOLATILE_JUMBO,
+                    SGET_OBJECT_VOLATILE_JUMBO, SPUT_VOLATILE_JUMBO, SPUT_WIDE_VOLATILE_JUMBO,
+                    SPUT_OBJECT_VOLATILE_JUMBO);
             addOpcodes(INVOKE_DIRECT_EMPTY);
         }
     }
diff --git a/smali/src/main/antlr3/org/jf/smali/smaliLexer.g b/smali/src/main/antlr3/org/jf/smali/smaliLexer.g
index 882744b..3d7949e 100644
--- a/smali/src/main/antlr3/org/jf/smali/smaliLexer.g
+++ b/smali/src/main/antlr3/org/jf/smali/smaliLexer.g
@@ -717,6 +717,14 @@
 	|	'sput-char/jumbo'
 	|	'sput-short/jumbo';
 
+INSTRUCTION_FORMAT41c_FIELD_ODEX
+	:	'sget-volatile/jumbo'
+	|	'sget-wide-volatile/jumbo'
+	|	'sget-object-volatile/jumbo'
+	|	'sput-volatile/jumbo'
+	|	'sput-wide-volatile/jumbo'
+	|	'sput-object-volatile/jumbo';
+
 INSTRUCTION_FORMAT51l
 	:	'const-wide';
 
@@ -740,6 +748,14 @@
 	|	'iput-char/jumbo'
 	|	'iput-short/jumbo';
 
+INSTRUCTION_FORMAT52c_FIELD_ODEX
+	:	'iget-volatile/jumbo'
+	|	'iget-wide-volatile/jumbo'
+	|	'iget-object-volatile/jumbo'
+	|	'iput-volatile/jumbo'
+	|	'iput-wide-volatile/jumbo'
+	|	'iput-object-volatile/jumbo';
+
 INSTRUCTION_FORMAT5rc_METHOD
 	:	'invoke-virtual/jumbo'
 	|	'invoke-super/jumbo'
diff --git a/smali/src/main/antlr3/org/jf/smali/smaliParser.g b/smali/src/main/antlr3/org/jf/smali/smaliParser.g
index acf6064..1d957c5 100644
--- a/smali/src/main/antlr3/org/jf/smali/smaliParser.g
+++ b/smali/src/main/antlr3/org/jf/smali/smaliParser.g
@@ -857,6 +857,11 @@
 	|	//e.g. sget-object/jumbo v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
 		INSTRUCTION_FORMAT41c_FIELD REGISTER COMMA fully_qualified_field {$size = Format.Format41c.size;}
 		-> ^(I_STATEMENT_FORMAT41c_FIELD[$start, "I_STATEMENT_FORMAT41c_FIELD"] INSTRUCTION_FORMAT41c_FIELD REGISTER fully_qualified_field)
+	|	//e.g. sget-object-volatile/jumbo v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
+		INSTRUCTION_FORMAT41c_FIELD_ODEX REGISTER COMMA fully_qualified_field {$size = Format.Format41c.size;}
+		{
+			throwOdexedInstructionException(input, $INSTRUCTION_FORMAT41c_FIELD_ODEX.text);
+		}
 	|	//e.g. const-wide v0, 5000000000L
 		INSTRUCTION_FORMAT51l REGISTER COMMA fixed_literal {$size = Format.Format51l.size;}
 		-> ^(I_STATEMENT_FORMAT51l[$start, "I_STATEMENT_FORMAT51l"] INSTRUCTION_FORMAT51l REGISTER fixed_literal)
@@ -866,6 +871,11 @@
 	|	//e.g. iput-object/jumbo v1, v0 Lorg/jf/HelloWorld2/HelloWorld2;->helloWorld:Ljava/lang/String;
 		INSTRUCTION_FORMAT52c_FIELD REGISTER COMMA REGISTER COMMA fully_qualified_field {$size = Format.Format52c.size;}
 		-> ^(I_STATEMENT_FORMAT52c_FIELD[$start, "I_STATEMENT_FORMAT52c_FIELD"] INSTRUCTION_FORMAT52c_FIELD REGISTER REGISTER fully_qualified_field)
+	|	//e.g. iput-object-volatile/jumbo v1, v0 Lorg/jf/HelloWorld2/HelloWorld2;->helloWorld:Ljava/lang/String;
+		INSTRUCTION_FORMAT52c_FIELD_ODEX REGISTER COMMA REGISTER COMMA fully_qualified_field {$size = Format.Format52c.size;}
+		{
+			throwOdexedInstructionException(input, $INSTRUCTION_FORMAT52c_FIELD_ODEX.text);
+		}
 	|	//e.g. invoke-virtual/jumbo {v25..v26}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
 		INSTRUCTION_FORMAT5rc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA fully_qualified_method {$size = Format.Format5rc.size;}
 		-> ^(I_STATEMENT_FORMAT5rc_METHOD[$start, "I_STATEMENT_FORMAT5rc_METHOD"] INSTRUCTION_FORMAT5rc_METHOD register_range fully_qualified_method)
diff --git a/smali/src/main/jflex/smaliLexer.flex b/smali/src/main/jflex/smaliLexer.flex
index 9713916..5fba139 100644
--- a/smali/src/main/jflex/smaliLexer.flex
+++ b/smali/src/main/jflex/smaliLexer.flex
@@ -580,6 +580,11 @@
         return newToken(INSTRUCTION_FORMAT41c_FIELD);
     }
 
+    "sget-volatile/jumbo" | "sget-wide-volatile/jumbo" | "sget-object-volatile/jumbo" | "sput-volatile/jumbo" |
+    "sput-wide-volatile/jumbo" | "sput-object-volatile/jumbo" {
+        return newToken(INSTRUCTION_FORMAT41c_FIELD_ODEX);
+    }
+
     "const-wide" {
         return newToken(INSTRUCTION_FORMAT51l);
     }
@@ -594,6 +599,11 @@
         return newToken(INSTRUCTION_FORMAT52c_FIELD);
     }
 
+    "iget-volatile/jumbo" | "iget-wide-volatile/jumbo" | "iget-object-volatile/jumbo" | "iput-volatile/jumbo" |
+    "iput-wide-volatile/jumbo" | "iput-object-volatile/jumbo" {
+        return newToken(INSTRUCTION_FORMAT52c_FIELD_ODEX);
+    }
+
     "invoke-virtual/jumbo" | "invoke-super/jumbo" | "invoke-direct/jumbo" | "invoke-static/jumbo" |
     "invoke-interface/jumbo" {
         return newToken(INSTRUCTION_FORMAT5rc_METHOD);
diff --git a/smali/src/test/resources/LexerTest/InstructionTest.smali b/smali/src/test/resources/LexerTest/InstructionTest.smali
index 47cc6d6..8b45834 100644
--- a/smali/src/test/resources/LexerTest/InstructionTest.smali
+++ b/smali/src/test/resources/LexerTest/InstructionTest.smali
@@ -265,4 +265,16 @@
 invoke-static/jumbo
 invoke-interface/jumbo
 filled-new-array/jumbo
-invoke-object-init/jumbo
\ No newline at end of file
+invoke-object-init/jumbo
+iget-volatile/jumbo
+iget-wide-volatile/jumbo
+iget-object-volatile/jumbo
+iput-volatile/jumbo
+iput-wide-volatile/jumbo
+iput-object-volatile/jumbo
+sget-volatile/jumbo
+sget-wide-volatile/jumbo
+sget-object-volatile/jumbo
+sput-volatile/jumbo
+sput-wide-volatile/jumbo
+sput-object-volatile/jumbo
diff --git a/smali/src/test/resources/LexerTest/InstructionTest.tokens b/smali/src/test/resources/LexerTest/InstructionTest.tokens
index 1de5aad..457ceeb 100644
--- a/smali/src/test/resources/LexerTest/InstructionTest.tokens
+++ b/smali/src/test/resources/LexerTest/InstructionTest.tokens
@@ -265,4 +265,16 @@
 INSTRUCTION_FORMAT5rc_METHOD("invoke-static/jumbo")
 INSTRUCTION_FORMAT5rc_METHOD("invoke-interface/jumbo")
 INSTRUCTION_FORMAT5rc_TYPE("filled-new-array/jumbo")
-INSTRUCTION_FORMAT5rc_METHOD_ODEX("invoke-object-init/jumbo")
\ No newline at end of file
+INSTRUCTION_FORMAT5rc_METHOD_ODEX("invoke-object-init/jumbo")
+INSTRUCTION_FORMAT52c_FIELD_ODEX("iget-volatile/jumbo")
+INSTRUCTION_FORMAT52c_FIELD_ODEX("iget-wide-volatile/jumbo")
+INSTRUCTION_FORMAT52c_FIELD_ODEX("iget-object-volatile/jumbo")
+INSTRUCTION_FORMAT52c_FIELD_ODEX("iput-volatile/jumbo")
+INSTRUCTION_FORMAT52c_FIELD_ODEX("iput-wide-volatile/jumbo")
+INSTRUCTION_FORMAT52c_FIELD_ODEX("iput-object-volatile/jumbo")
+INSTRUCTION_FORMAT41c_FIELD_ODEX("sget-volatile/jumbo")
+INSTRUCTION_FORMAT41c_FIELD_ODEX("sget-wide-volatile/jumbo")
+INSTRUCTION_FORMAT41c_FIELD_ODEX("sget-object-volatile/jumbo")
+INSTRUCTION_FORMAT41c_FIELD_ODEX("sput-volatile/jumbo")
+INSTRUCTION_FORMAT41c_FIELD_ODEX("sput-wide-volatile/jumbo")
+INSTRUCTION_FORMAT41c_FIELD_ODEX("sput-object-volatile/jumbo")
