title: Android CPU register names?
body: <p>This code fragment is extracted from an Android crash report on a Samsung Tab S:</p>
  
  <pre><code>Build fingerprint: 'samsung/chagallwifixx/chagallwifi:5.0.2/LRX22G/T800XXU1BOCC:user/release-keys'
  Revision: '7'
  ABI: 'arm'
      r0 a0d840bc  r1 a0dcb880  r2 00000001  r3 a0d840bc
      r4 a0dc3c4c  r5 00000000  r6 a066d200  r7 00000000
      r8 32d68f40  r9 a0c359a8  sl 00000014  fp bef3ba84
      ip a0dc3fb8  sp bef3ba10  lr a0c35a0c  pc a0c34bc8  cpsr 400d0010
  </code></pre>
  
  <p><code>r0</code> through <code>r9</code> are pretty clearly general purpose registers, <code>sp</code> (<code>r13</code>) is the stack pointer, and <code>pc</code> (<code>r15</code>) is the program counter (instruction pointer).  Referring to the <a href="https://en.wikipedia.org/wiki/ARM_architecture#Registers" rel="noreferrer">Wikipedia's ARM Architecture page Registers section</a> (one of <em>many</em> pages I looked through), I find that <code>lr</code> (<code>r14</code>) is the link register, and <code>cpsr</code> is the "Current Program Status Register."</p>
  
  <p>I would like to know what <code>sl</code> (<code>r10</code>), <code>fp</code> (<code>r11</code>) and <code>ip</code> (<code>r12</code>) are.  I expect <code>ip</code> is <em>not</em> the "instruction pointer" because that function is done by <code>pc</code> (<code>r15</code>).</p>
  
  <p>Is there a reference document I haven't found that illustrates these names?</p>