Merge branch 'asus' into release
[sfrench/cifs-2.6.git] / arch / arm / lib / backtrace.S
index b0951d0e8b2ca61e68b9ff976a5bc96b5eca696c..aaf7220d9e30bd0f4cab505bf0aa3b3d44edfa73 100644 (file)
@@ -38,7 +38,9 @@ ENDPROC(c_backtrace)
                beq     no_frame                @ we have no stack frames
 
                tst     r1, #0x10               @ 26 or 32-bit mode?
-               moveq   mask, #0xfc000003       @ mask for 26-bit
+ ARM(          moveq   mask, #0xfc000003       )
+ THUMB(                moveq   mask, #0xfc000000       )
+ THUMB(                orreq   mask, #0x03             )
                movne   mask, #0                @ mask for 32-bit
 
 1:             stmfd   sp!, {pc}               @ calculate offset of PC stored
@@ -126,7 +128,9 @@ ENDPROC(c_backtrace)
                mov     reg, #10
                mov     r7, #0
 1:             mov     r3, #1
-               tst     instr, r3, lsl reg
+ ARM(          tst     instr, r3, lsl reg      )
+ THUMB(                lsl     r3, reg                 )
+ THUMB(                tst     instr, r3               )
                beq     2f
                add     r7, r7, #1
                teq     r7, #6