1.syntax unified 2.thumb 3ldmstm: 4 ldmia sp!, {r0} 5 ldmia sp!, {r8} 6 ldmia r1, {r9} 7 ldmia r2!, {ip} 8 ldmdb sp!, {r2} 9 ldmdb sp!, {r8} 10 ldmdb r6, {r4} 11 ldmdb r6, {r8} 12 ldmdb r2!, {r4} 13 ldmdb r2!, {ip} 14 stmia sp!, {r3} 15 stmia sp!, {r9} 16 stmia r3, {ip} 17 stmia r4!, {ip} 18 stmdb sp!, {r3} 19 stmdb sp!, {r9} 20 stmdb r7, {r5} 21 stmdb r6, {ip} 22 stmdb r6!, {fp} 23 stmdb r5!, {r8} 24 25 @ Valid Thumb-2 encodings of LDM/LDMIA/LDMFD as specified by section 26 @ A8.6.53 of the ARM ARM 27 ldmia r0!, {r1-r3} @ Encoding T1 28 ldmia r0, {r0-r3} @ Encoding T1 29 ldmia r0!, {r1} @ Encoding T1 30 ldmia r0, {r8-r11} @ Encoding T2 31 ldmia.w r0!, {r1-r3} @ Encoding T2 32 ldmia r0!, {r8-r11} @ Encoding T2 33 ldmia r0!, {r12, r14} @ Encoding T2 34 ldmia r0!, {r12, pc} @ Encoding T2 35 it eq 36 ldmiaeq r0!, {r12, pc} @ Encoding T2 37 38 @ Valid Thumb-2 encodings of STM/STMIA/STMEA as specified by section 39 @ A8.6.189 of the ARMARM. 40 stmia r0!, {r0-r3} @ Encoding T1, Allowed as r0 is lowest reg 41 stmia r0!, {r4-r7} @ Encoding T1 42 stmia.w r0!, {r4-r7} @ Encoding T2 43 stmia r0!, {r8-r11} @ Encoding T2 44 stmia r0, {r0-r3} @ Encoding T2 45 stmia r0, {r8-r11} @ Encoding T2 46 47 @ The following are technically UNPREDICTABLE if we assemble them 48 @ as written, but gas translates (stm|ldm) rn(!), {rd} into an 49 @ equivalent, and well-defined, (ldr, str) rd, [rn], (#4). 50 ldmia.w r0!, {r1} @ ldr.w r1, [r0], #4 51 ldmia.w r0, {r1} @ ldr.w r1, [r0] 52 ldmia r8!, {r9} @ ldr.w r9, [r8], #4 53 ldmia r8, {r9} @ ldr.w r9, [r8] 54 stmia.w r0!, {r1} @ str.w r1, [r0], #4 55 stmia r0, {r1} @ T1 str r1, [r0] 56 ldmia r1, {r2} @ T1 ldr r2, [r1] 57 ldmia r0, {r7} @ T1 ldr r7, [r0] 58 stmia sp, {r7} @ T1 str r7, [sp] 59 stmia sp, {r0} @ T1 str r0, [sp] 60 ldmia sp, {r7} @ T1 ldr r7, [sp] 61 ldmia sp, {r0} @ T1 ldr r0, [sp] 62 stmia r8!, {r9} @ str.w r9, [r8], #4 63 stmia r8, {r9} @ str.w r9, [r8] 64