I have some ARMv7 instructions that I do not understand, despite reading the reference at: ARM Information Center
In the context of:
a7a4d8: b530 push {r4, r5, lr}
a7a4da: 466c mov r4, sp
a7a4dc: 4605 mov r5, r0
a7a4de: 682a ldr r2, [r5, #0]
a7a4e0: ebad 0d02 sub.w sp, sp, r2
a7a4e4: f104 0014 add.w r0, r4, #20 ; 0x14
a7a4e8: 4669 mov r1, sp
a7a4ea: b082 sub sp, #8
a7a4ec: 466a mov r2, sp
a7a4ee: 462b mov r3, r5
a7a4f0: f746 f1b8 bl 5c0864 <RoutineName>
a7a4f4: 9800 ldr r0, [sp, #0]
a7a4f6: 9901 ldr r1, [sp, #4]
a7a4f8: 46a5 mov sp, r4
a7a4fa: bd30 pop {r4, r5, pc}
What does the following do? Can someone explain in terms of pseudo-code?
a7a4de: 682a ldr r2, [r5, #0]
a7a4e0: ebad 0d02 sub.w sp, sp, r2
a7a4e4: f104 0014 add.w r0, r4, #20 ; 0x14
a7a4f4: 9800 ldr r0, [sp, #0]
a7a4f6: 9901 ldr r1, [sp, #4]