Move the instruction representation code.

It now gets its own subpackage, reducing the clutter in the base .io
package. I was on the fence about CodeReader and ended up just leaving
it be, but maybe that one wants to move too.

Change-Id: I87c574ce2086025bcb9583627a545160084ba88e
diff --git a/dx/src/com/android/dx/command/findusages/FindUsages.java b/dx/src/com/android/dx/command/findusages/FindUsages.java
index 30c6030..1c692ae 100644
--- a/dx/src/com/android/dx/command/findusages/FindUsages.java
+++ b/dx/src/com/android/dx/command/findusages/FindUsages.java
@@ -19,11 +19,11 @@
 import com.android.dx.io.ClassData;
 import com.android.dx.io.ClassDef;
 import com.android.dx.io.CodeReader;
-import com.android.dx.io.DecodedInstruction;
 import com.android.dx.io.DexBuffer;
 import com.android.dx.io.FieldId;
 import com.android.dx.io.MethodId;
 import com.android.dx.io.OpcodeInfo;
+import com.android.dx.io.instructions.DecodedInstruction;
 import java.io.PrintStream;
 import java.util.Collections;
 import java.util.HashSet;
diff --git a/dx/src/com/android/dx/io/CodeReader.java b/dx/src/com/android/dx/io/CodeReader.java
index ca8fe6f..26430bd 100644
--- a/dx/src/com/android/dx/io/CodeReader.java
+++ b/dx/src/com/android/dx/io/CodeReader.java
@@ -17,6 +17,7 @@
 package com.android.dx.io;
 
 import com.android.dx.dex.DexException;
+import com.android.dx.io.instructions.DecodedInstruction;
 
 /**
  * Walks through a block of code and calls visitor call backs.
diff --git a/dx/src/com/android/dx/io/OpcodeInfo.java b/dx/src/com/android/dx/io/OpcodeInfo.java
index e75791f..c8fcf25 100644
--- a/dx/src/com/android/dx/io/OpcodeInfo.java
+++ b/dx/src/com/android/dx/io/OpcodeInfo.java
@@ -16,6 +16,7 @@
 
 package com.android.dx.io;
 
+import com.android.dx.io.instructions.InstructionCodec;
 import com.android.dx.util.Hex;
 
 /**
diff --git a/dx/src/com/android/dx/io/AddressMap.java b/dx/src/com/android/dx/io/instructions/AddressMap.java
similarity index 97%
rename from dx/src/com/android/dx/io/AddressMap.java
rename to dx/src/com/android/dx/io/instructions/AddressMap.java
index a35b550..a8dbe0b 100644
--- a/dx/src/com/android/dx/io/AddressMap.java
+++ b/dx/src/com/android/dx/io/instructions/AddressMap.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
 
 import java.io.EOFException;
 import java.util.HashMap;
diff --git a/dx/src/com/android/dx/io/BaseCodeCursor.java b/dx/src/com/android/dx/io/instructions/BaseCodeCursor.java
similarity index 97%
rename from dx/src/com/android/dx/io/BaseCodeCursor.java
rename to dx/src/com/android/dx/io/instructions/BaseCodeCursor.java
index 32772f8..6915fa8 100644
--- a/dx/src/com/android/dx/io/BaseCodeCursor.java
+++ b/dx/src/com/android/dx/io/instructions/BaseCodeCursor.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
 
 import java.io.EOFException;
 
diff --git a/dx/src/com/android/dx/io/CodeCursor.java b/dx/src/com/android/dx/io/instructions/CodeCursor.java
similarity index 97%
rename from dx/src/com/android/dx/io/CodeCursor.java
rename to dx/src/com/android/dx/io/instructions/CodeCursor.java
index dd38ae6..68eb9c9 100644
--- a/dx/src/com/android/dx/io/CodeCursor.java
+++ b/dx/src/com/android/dx/io/instructions/CodeCursor.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
 
 /**
  * Cursor over code units, for reading or writing out Dalvik bytecode.
diff --git a/dx/src/com/android/dx/io/CodeInput.java b/dx/src/com/android/dx/io/instructions/CodeInput.java
similarity index 96%
rename from dx/src/com/android/dx/io/CodeInput.java
rename to dx/src/com/android/dx/io/instructions/CodeInput.java
index 04629bf..41a5ef7 100644
--- a/dx/src/com/android/dx/io/CodeInput.java
+++ b/dx/src/com/android/dx/io/instructions/CodeInput.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
 
 import java.io.EOFException;
 
diff --git a/dx/src/com/android/dx/io/CodeOutput.java b/dx/src/com/android/dx/io/instructions/CodeOutput.java
similarity index 97%
rename from dx/src/com/android/dx/io/CodeOutput.java
rename to dx/src/com/android/dx/io/instructions/CodeOutput.java
index d5622c6..7d0077e 100644
--- a/dx/src/com/android/dx/io/CodeOutput.java
+++ b/dx/src/com/android/dx/io/instructions/CodeOutput.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
 
 /**
  * Output stream of code units, for writing out Dalvik bytecode.
diff --git a/dx/src/com/android/dx/io/DecodedInstruction.java b/dx/src/com/android/dx/io/instructions/DecodedInstruction.java
similarity index 98%
rename from dx/src/com/android/dx/io/DecodedInstruction.java
rename to dx/src/com/android/dx/io/instructions/DecodedInstruction.java
index 14ae768..f9bdcf8 100644
--- a/dx/src/com/android/dx/io/DecodedInstruction.java
+++ b/dx/src/com/android/dx/io/instructions/DecodedInstruction.java
@@ -14,9 +14,12 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
 
 import com.android.dx.dex.DexException;
+import com.android.dx.io.IndexType;
+import com.android.dx.io.OpcodeInfo;
+import com.android.dx.io.Opcodes;
 import com.android.dx.util.Hex;
 
 import java.io.EOFException;
diff --git a/dx/src/com/android/dx/io/FillArrayDataPayloadDecodedInstruction.java b/dx/src/com/android/dx/io/instructions/FillArrayDataPayloadDecodedInstruction.java
similarity index 98%
rename from dx/src/com/android/dx/io/FillArrayDataPayloadDecodedInstruction.java
rename to dx/src/com/android/dx/io/instructions/FillArrayDataPayloadDecodedInstruction.java
index f007326..64fc55b 100644
--- a/dx/src/com/android/dx/io/FillArrayDataPayloadDecodedInstruction.java
+++ b/dx/src/com/android/dx/io/instructions/FillArrayDataPayloadDecodedInstruction.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
 
 /**
  * A decoded Dalvik instruction which contains the payload for
diff --git a/dx/src/com/android/dx/io/FiveRegisterDecodedInstruction.java b/dx/src/com/android/dx/io/instructions/FiveRegisterDecodedInstruction.java
similarity index 96%
rename from dx/src/com/android/dx/io/FiveRegisterDecodedInstruction.java
rename to dx/src/com/android/dx/io/instructions/FiveRegisterDecodedInstruction.java
index 71df05f..6e14d34 100644
--- a/dx/src/com/android/dx/io/FiveRegisterDecodedInstruction.java
+++ b/dx/src/com/android/dx/io/instructions/FiveRegisterDecodedInstruction.java
@@ -14,7 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
+
+import com.android.dx.io.IndexType;
 
 /**
  * A decoded Dalvik instruction which has five register arguments.
diff --git a/dx/src/com/android/dx/io/FourRegisterDecodedInstruction.java b/dx/src/com/android/dx/io/instructions/FourRegisterDecodedInstruction.java
similarity index 96%
rename from dx/src/com/android/dx/io/FourRegisterDecodedInstruction.java
rename to dx/src/com/android/dx/io/instructions/FourRegisterDecodedInstruction.java
index 35f6c83..29836d0 100644
--- a/dx/src/com/android/dx/io/FourRegisterDecodedInstruction.java
+++ b/dx/src/com/android/dx/io/instructions/FourRegisterDecodedInstruction.java
@@ -14,7 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
+
+import com.android.dx.io.IndexType;
 
 /**
  * A decoded Dalvik instruction which has five register arguments.
diff --git a/dx/src/com/android/dx/io/InstructionCodec.java b/dx/src/com/android/dx/io/instructions/InstructionCodec.java
similarity index 99%
rename from dx/src/com/android/dx/io/InstructionCodec.java
rename to dx/src/com/android/dx/io/instructions/InstructionCodec.java
index 5edf2e5..2523f86 100644
--- a/dx/src/com/android/dx/io/InstructionCodec.java
+++ b/dx/src/com/android/dx/io/instructions/InstructionCodec.java
@@ -14,9 +14,12 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
 
 import com.android.dx.dex.DexException;
+import com.android.dx.io.IndexType;
+import com.android.dx.io.OpcodeInfo;
+import com.android.dx.io.Opcodes;
 import com.android.dx.util.Hex;
 
 import java.io.EOFException;
diff --git a/dx/src/com/android/dx/io/OneRegisterDecodedInstruction.java b/dx/src/com/android/dx/io/instructions/OneRegisterDecodedInstruction.java
similarity index 94%
rename from dx/src/com/android/dx/io/OneRegisterDecodedInstruction.java
rename to dx/src/com/android/dx/io/instructions/OneRegisterDecodedInstruction.java
index 375f81d..fd38e3b 100644
--- a/dx/src/com/android/dx/io/OneRegisterDecodedInstruction.java
+++ b/dx/src/com/android/dx/io/instructions/OneRegisterDecodedInstruction.java
@@ -14,7 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
+
+import com.android.dx.io.IndexType;
 
 /**
  * A decoded Dalvik instruction which has one register argument.
diff --git a/dx/src/com/android/dx/io/PackedSwitchPayloadDecodedInstruction.java b/dx/src/com/android/dx/io/instructions/PackedSwitchPayloadDecodedInstruction.java
similarity index 97%
rename from dx/src/com/android/dx/io/PackedSwitchPayloadDecodedInstruction.java
rename to dx/src/com/android/dx/io/instructions/PackedSwitchPayloadDecodedInstruction.java
index 5362d7a..c31d319 100644
--- a/dx/src/com/android/dx/io/PackedSwitchPayloadDecodedInstruction.java
+++ b/dx/src/com/android/dx/io/instructions/PackedSwitchPayloadDecodedInstruction.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
 
 /**
  * A decoded Dalvik instruction which contains the payload for
diff --git a/dx/src/com/android/dx/io/RegisterRangeDecodedInstruction.java b/dx/src/com/android/dx/io/instructions/RegisterRangeDecodedInstruction.java
similarity index 95%
rename from dx/src/com/android/dx/io/RegisterRangeDecodedInstruction.java
rename to dx/src/com/android/dx/io/instructions/RegisterRangeDecodedInstruction.java
index 10769f0..f294f63 100644
--- a/dx/src/com/android/dx/io/RegisterRangeDecodedInstruction.java
+++ b/dx/src/com/android/dx/io/instructions/RegisterRangeDecodedInstruction.java
@@ -14,7 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
+
+import com.android.dx.io.IndexType;
 
 /**
  * A decoded Dalvik instruction which has register range arguments (an
diff --git a/dx/src/com/android/dx/io/ShortArrayCodeInput.java b/dx/src/com/android/dx/io/instructions/ShortArrayCodeInput.java
similarity index 97%
rename from dx/src/com/android/dx/io/ShortArrayCodeInput.java
rename to dx/src/com/android/dx/io/instructions/ShortArrayCodeInput.java
index 114b865..bb5a4a0 100644
--- a/dx/src/com/android/dx/io/ShortArrayCodeInput.java
+++ b/dx/src/com/android/dx/io/instructions/ShortArrayCodeInput.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
 
 import java.io.EOFException;
 
diff --git a/dx/src/com/android/dx/io/ShortArrayCodeOutput.java b/dx/src/com/android/dx/io/instructions/ShortArrayCodeOutput.java
similarity index 98%
rename from dx/src/com/android/dx/io/ShortArrayCodeOutput.java
rename to dx/src/com/android/dx/io/instructions/ShortArrayCodeOutput.java
index d3a3710..efa7ddd 100644
--- a/dx/src/com/android/dx/io/ShortArrayCodeOutput.java
+++ b/dx/src/com/android/dx/io/instructions/ShortArrayCodeOutput.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
 
 /**
  * Implementation of {@code CodeOutput} that writes to a {@code short[]}.
diff --git a/dx/src/com/android/dx/io/SparseSwitchPayloadDecodedInstruction.java b/dx/src/com/android/dx/io/instructions/SparseSwitchPayloadDecodedInstruction.java
similarity index 97%
rename from dx/src/com/android/dx/io/SparseSwitchPayloadDecodedInstruction.java
rename to dx/src/com/android/dx/io/instructions/SparseSwitchPayloadDecodedInstruction.java
index 1bc9f40..bfc47c9 100644
--- a/dx/src/com/android/dx/io/SparseSwitchPayloadDecodedInstruction.java
+++ b/dx/src/com/android/dx/io/instructions/SparseSwitchPayloadDecodedInstruction.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
 
 /**
  * A decoded Dalvik instruction which contains the payload for
diff --git a/dx/src/com/android/dx/io/ThreeRegisterDecodedInstruction.java b/dx/src/com/android/dx/io/instructions/ThreeRegisterDecodedInstruction.java
similarity index 95%
rename from dx/src/com/android/dx/io/ThreeRegisterDecodedInstruction.java
rename to dx/src/com/android/dx/io/instructions/ThreeRegisterDecodedInstruction.java
index d041807..a463677 100644
--- a/dx/src/com/android/dx/io/ThreeRegisterDecodedInstruction.java
+++ b/dx/src/com/android/dx/io/instructions/ThreeRegisterDecodedInstruction.java
@@ -14,7 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
+
+import com.android.dx.io.IndexType;
 
 /**
  * A decoded Dalvik instruction which has three register arguments.
diff --git a/dx/src/com/android/dx/io/TwoRegisterDecodedInstruction.java b/dx/src/com/android/dx/io/instructions/TwoRegisterDecodedInstruction.java
similarity index 95%
rename from dx/src/com/android/dx/io/TwoRegisterDecodedInstruction.java
rename to dx/src/com/android/dx/io/instructions/TwoRegisterDecodedInstruction.java
index b299a54..acb77ba 100644
--- a/dx/src/com/android/dx/io/TwoRegisterDecodedInstruction.java
+++ b/dx/src/com/android/dx/io/instructions/TwoRegisterDecodedInstruction.java
@@ -14,7 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
+
+import com.android.dx.io.IndexType;
 
 /**
  * A decoded Dalvik instruction which has two register arguments.
diff --git a/dx/src/com/android/dx/io/ZeroRegisterDecodedInstruction.java b/dx/src/com/android/dx/io/instructions/ZeroRegisterDecodedInstruction.java
similarity index 94%
rename from dx/src/com/android/dx/io/ZeroRegisterDecodedInstruction.java
rename to dx/src/com/android/dx/io/instructions/ZeroRegisterDecodedInstruction.java
index 522b95c..172caa4 100644
--- a/dx/src/com/android/dx/io/ZeroRegisterDecodedInstruction.java
+++ b/dx/src/com/android/dx/io/instructions/ZeroRegisterDecodedInstruction.java
@@ -14,7 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.dx.io;
+package com.android.dx.io.instructions;
+
+import com.android.dx.io.IndexType;
 
 /**
  * A decoded Dalvik instruction which has no register arguments.
diff --git a/dx/src/com/android/dx/merge/InstructionTransformer.java b/dx/src/com/android/dx/merge/InstructionTransformer.java
index d3499d8..48d6642 100644
--- a/dx/src/com/android/dx/merge/InstructionTransformer.java
+++ b/dx/src/com/android/dx/merge/InstructionTransformer.java
@@ -18,9 +18,9 @@
 
 import com.android.dx.dex.DexException;
 import com.android.dx.io.CodeReader;
-import com.android.dx.io.DecodedInstruction;
 import com.android.dx.io.OpcodeInfo;
-import com.android.dx.io.ShortArrayCodeOutput;
+import com.android.dx.io.instructions.DecodedInstruction;
+import com.android.dx.io.instructions.ShortArrayCodeOutput;
 
 final class InstructionTransformer {
     private final IndexMap indexMap;