title: why is there severals encodings for one instruction in ARMv7
body: <p>I am currently trying to implement a disassembler for the ARM cortex A9, which implement the ARMv7 instruction set.</p>
  
  <p>For that I am using the manual "DDI0406C_b_arm_architecture_reference_manual.pdf" that can be download here (after having registered on arm website) :</p>
  
  <p><a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.architecture/index.html" rel="nofollow">http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.architecture/index.html</a></p>
  
  <p>In this manual, in the part A8.8 with the instructions details, I can't understand why there is several encoding for one instruction (like A1, A2, ...), that all seem to be implemented with ARMv7.</p>
  
  <p>Also, as the ARM cortex A9 used thumb-2, does it also implement the A1/A2/... encodings, or only the T1/T2... ?</p>
  
  <p>I really read all parts of this manual are related to encodings, but I still don't understand how we can know which encoding is used for a program.</p>