title: Why does this PUSH instruction cause a UNDEFINED_INSTRUCTION exception at my ARM processor?
body: <p>I am working with a Cortex-A9 and my program crashes because of an UNDEFINED_INSTRUCTION exception. The assembly line that causes this exception is according to my debugger's trace: </p>
  
  <p>Trace #9999 : S:0x022D9A7C E92D4800 ARM PUSH     {r11,lr}</p>
  
  <p>Exception: UNDEFINED_INSTRUCTION (9) </p>
  
  <p>I program in C and don't write assembly or binary and I am using gcc. Is this really the instruction that causes the exception, i.e. is the encoding of this PUSH instruction wrong and hence a compiler/assembler bug? Or is the encoding correct and something strange is going on? Scrolling back in the trace I found another PUSH instruction, that does not cause errors and looks like this:</p>
  
  <p>Trace #9966 : S:0x022A65FC E52DB004 ARM PUSH     {r11}</p>
  
  <p>And of course there are a lot of other PUSH instruction too. But I did not find any other that tries to push specifically R11 and LR, so I can't compare. </p>
  
  <p>I can't answer my own question, so I edit it:</p>
  
  <p>Sorry guys, I don't exactly know what happend. I tried it several times and got the same error again and again. Then I turned the device off, went away and tried it again later and know it works fine... 
  Maybe the memory was corrupted somehow due to overheating or something? I don't know. Thanks for your answers anyway. 
  I use gcc 4.7.2 btw. </p>