changeset 10356:f8d0701ff445 libavcodec

ARM: update ldm/stm instructions to modern syntax
author mru
date Sat, 03 Oct 2009 18:22:52 +0000
parents 47245bb9e85f
children ada571517e88
files arm/dsputil_arm_s.S
diffstat 1 files changed, 111 insertions(+), 111 deletions(-) [+]
line wrap: on
line diff
--- a/arm/dsputil_arm_s.S	Sat Oct 03 18:22:49 2009 +0000
+++ b/arm/dsputil_arm_s.S	Sat Oct 03 18:22:52 2009 +0000
@@ -107,50 +107,50 @@
         @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
         @ block = word aligned, pixles = unaligned
         pld             [r1]
-        stmfd           sp!, {r4-r11, lr} @ R14 is also called LR
+        push            {r4-r11, lr}
         JMP_ALIGN       r5,  r1
 1:
-        ldmia           r1,  {r4-r7}
+        ldm             r1,  {r4-r7}
         add             r1,  r1,  r2
-        stmia           r0,  {r4-r7}
+        stm             r0,  {r4-r7}
         pld             [r1]
         subs            r3,  r3,  #1
         add             r0,  r0,  r2
         bne             1b
-        ldmfd           sp!, {r4-r11, pc}
+        pop             {r4-r11, pc}
         .align 5
 2:
-        ldmia           r1,  {r4-r8}
+        ldm             r1,  {r4-r8}
         add             r1,  r1,  r2
         ADJ_ALIGN_QUADWORD_D 1, r9,  r10, r11, r12, r4,  r5,  r6,  r7,  r8
         pld             [r1]
         subs            r3,  r3,  #1
-        stmia           r0,  {r9-r12}
+        stm             r0,  {r9-r12}
         add             r0,  r0,  r2
         bne             2b
-        ldmfd           sp!, {r4-r11, pc}
+        pop             {r4-r11, pc}
         .align 5
 3:
-        ldmia           r1,  {r4-r8}
+        ldm             r1,  {r4-r8}
         add             r1,  r1,  r2
         ADJ_ALIGN_QUADWORD_D 2, r9,  r10, r11, r12, r4,  r5,  r6,  r7,  r8
         pld             [r1]
         subs            r3,  r3,  #1
-        stmia           r0,  {r9-r12}
+        stm             r0,  {r9-r12}
         add             r0,  r0,  r2
         bne             3b
-        ldmfd           sp!, {r4-r11, pc}
+        pop             {r4-r11, pc}
         .align 5
 4:
-        ldmia           r1,  {r4-r8}
+        ldm             r1,  {r4-r8}
         add             r1,  r1,  r2
         ADJ_ALIGN_QUADWORD_D 3, r9,  r10, r11, r12, r4,  r5,  r6,  r7,  r8
         pld             [r1]
         subs            r3,  r3,  #1
-        stmia           r0,  {r9-r12}
+        stm             r0,  {r9-r12}
         add             r0,  r0,  r2
         bne             4b
-        ldmfd           sp!, {r4-r11,pc}
+        pop             {r4-r11,pc}
         .endfunc
 
 @ ----------------------------------------------------------------
@@ -159,50 +159,50 @@
         @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
         @ block = word aligned, pixles = unaligned
         pld             [r1]
-        stmfd           sp!, {r4-r5,lr} @ R14 is also called LR
+        push            {r4-r5,lr}
         JMP_ALIGN       r5,  r1
 1:
-        ldmia           r1,  {r4-r5}
+        ldm             r1,  {r4-r5}
         add             r1,  r1,  r2
         subs            r3,  r3,  #1
         pld             [r1]
-        stmia           r0,  {r4-r5}
+        stm             r0,  {r4-r5}
         add             r0,  r0,  r2
         bne             1b
-        ldmfd           sp!, {r4-r5,pc}
+        pop             {r4-r5,pc}
         .align 5
 2:
-        ldmia           r1,  {r4-r5, r12}
+        ldm             r1,  {r4-r5, r12}
         add             r1,  r1,  r2
         ADJ_ALIGN_DOUBLEWORD 1, r4,  r5,  r12
         pld             [r1]
         subs            r3,  r3,  #1
-        stmia           r0,  {r4-r5}
+        stm             r0,  {r4-r5}
         add             r0,  r0,  r2
         bne             2b
-        ldmfd           sp!, {r4-r5,pc}
+        pop             {r4-r5,pc}
         .align 5
 3:
-        ldmia           r1,  {r4-r5, r12}
+        ldm             r1,  {r4-r5, r12}
         add             r1,  r1,  r2
         ADJ_ALIGN_DOUBLEWORD 2, r4,  r5,  r12
         pld             [r1]
         subs            r3,  r3,  #1
-        stmia           r0,  {r4-r5}
+        stm             r0,  {r4-r5}
         add             r0,  r0,  r2
         bne             3b
-        ldmfd           sp!, {r4-r5,pc}
+        pop             {r4-r5,pc}
         .align 5
 4:
-        ldmia           r1,  {r4-r5, r12}
+        ldm             r1,  {r4-r5, r12}
         add             r1,  r1,  r2
         ADJ_ALIGN_DOUBLEWORD 3, r4,  r5,  r12
         pld             [r1]
         subs            r3,  r3,  #1
-        stmia           r0,  {r4-r5}
+        stm             r0,  {r4-r5}
         add             r0,  r0,  r2
         bne             4b
-        ldmfd           sp!, {r4-r5,pc}
+        pop             {r4-r5,pc}
         .endfunc
 
 @ ----------------------------------------------------------------
@@ -211,58 +211,58 @@
         @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
         @ block = word aligned, pixles = unaligned
         pld             [r1]
-        stmfd           sp!, {r4-r10,lr} @ R14 is also called LR
+        push            {r4-r10,lr}
         ldr             r12, =0xfefefefe
         JMP_ALIGN       r5,  r1
 1:
-        ldmia           r1,  {r4-r5, r10}
+        ldm             r1,  {r4-r5, r10}
         add             r1,  r1,  r2
         ADJ_ALIGN_DOUBLEWORD_D 1, r6,  r7,  r4,  r5,  r10
         pld             [r1]
         RND_AVG32       r8,  r9,  r4,  r5,  r6,  r7,  r12
         subs            r3,  r3,  #1
-        stmia           r0,  {r8-r9}
+        stm             r0,  {r8-r9}
         add             r0,  r0,  r2
         bne             1b
-        ldmfd           sp!, {r4-r10,pc}
+        pop             {r4-r10,pc}
         .align 5
 2:
-        ldmia           r1,  {r4-r5, r10}
+        ldm             r1,  {r4-r5, r10}
         add             r1,  r1,  r2
         ADJ_ALIGN_DOUBLEWORD_D 1, r6,  r7,  r4,  r5,  r10
         ADJ_ALIGN_DOUBLEWORD_D 2, r8,  r9,  r4,  r5,  r10
         pld             [r1]
         RND_AVG32       r4,  r5,  r6,  r7,  r8,  r9,  r12
         subs            r3,  r3,  #1
-        stmia           r0,  {r4-r5}
+        stm             r0,  {r4-r5}
         add             r0,  r0,  r2
         bne             2b
-        ldmfd           sp!, {r4-r10,pc}
+        pop             {r4-r10,pc}
         .align 5
 3:
-        ldmia           r1,  {r4-r5, r10}
+        ldm             r1,  {r4-r5, r10}
         add             r1,  r1,  r2
         ADJ_ALIGN_DOUBLEWORD_D 2, r6,  r7,  r4,  r5,  r10
         ADJ_ALIGN_DOUBLEWORD_D 3, r8,  r9,  r4,  r5,  r10
         pld             [r1]
         RND_AVG32       r4,  r5,  r6,  r7,  r8,  r9,  r12
         subs            r3,  r3,  #1
-        stmia           r0,  {r4-r5}
+        stm             r0,  {r4-r5}
         add             r0,  r0,  r2
         bne             3b
-        ldmfd           sp!, {r4-r10,pc}
+        pop             {r4-r10,pc}
         .align 5
 4:
-        ldmia           r1,  {r4-r5, r10}
+        ldm             r1,  {r4-r5, r10}
         add             r1,  r1,  r2
         ADJ_ALIGN_DOUBLEWORD_D 3, r6,  r7,  r4,  r5,  r10
         pld             [r1]
         RND_AVG32       r8,  r9,  r6,  r7,  r5,  r10, r12
         subs            r3,  r3,  #1
-        stmia           r0,  {r8-r9}
+        stm             r0,  {r8-r9}
         add             r0,  r0,  r2
         bne             4b
-        ldmfd           sp!, {r4-r10,pc} @@ update PC with LR content.
+        pop             {r4-r10,pc}
         .endfunc
 
         .align 5
@@ -270,58 +270,58 @@
         @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
         @ block = word aligned, pixles = unaligned
         pld             [r1]
-        stmfd           sp!, {r4-r10,lr} @ R14 is also called LR
+        push            {r4-r10,lr}
         ldr             r12, =0xfefefefe
         JMP_ALIGN       r5,  r1
 1:
-        ldmia           r1,  {r4-r5, r10}
+        ldm             r1,  {r4-r5, r10}
         add             r1,  r1,  r2
         ADJ_ALIGN_DOUBLEWORD_D 1, r6,  r7,  r4,  r5,  r10
         pld             [r1]
         NO_RND_AVG32    r8,  r9,  r4,  r5,  r6,  r7,  r12
         subs            r3,  r3,  #1
-        stmia           r0,  {r8-r9}
+        stm             r0,  {r8-r9}
         add             r0,  r0,  r2
         bne             1b
-        ldmfd           sp!, {r4-r10,pc}
+        pop             {r4-r10,pc}
         .align 5
 2:
-        ldmia           r1,  {r4-r5, r10}
+        ldm             r1,  {r4-r5, r10}
         add             r1,  r1,  r2
         ADJ_ALIGN_DOUBLEWORD_D 1, r6,  r7,  r4,  r5,  r10
         ADJ_ALIGN_DOUBLEWORD_D 2, r8,  r9,  r4,  r5,  r10
         pld             [r1]
         NO_RND_AVG32    r4,  r5,  r6,  r7,  r8,  r9,  r12
         subs            r3,  r3,  #1
-        stmia           r0,  {r4-r5}
+        stm             r0,  {r4-r5}
         add             r0,  r0,  r2
         bne             2b
-        ldmfd           sp!, {r4-r10,pc}
+        pop             {r4-r10,pc}
         .align 5
 3:
-        ldmia           r1,  {r4-r5, r10}
+        ldm             r1,  {r4-r5, r10}
         add             r1,  r1,  r2
         ADJ_ALIGN_DOUBLEWORD_D 2, r6,  r7,  r4,  r5,  r10
         ADJ_ALIGN_DOUBLEWORD_D 3, r8,  r9,  r4,  r5,  r10
         pld             [r1]
         NO_RND_AVG32    r4,  r5,  r6,  r7,  r8,  r9,  r12
         subs            r3,  r3,  #1
-        stmia           r0,  {r4-r5}
+        stm             r0,  {r4-r5}
         add             r0,  r0,  r2
         bne             3b
-        ldmfd           sp!, {r4-r10,pc}
+        pop             {r4-r10,pc}
         .align 5
 4:
-        ldmia           r1,  {r4-r5, r10}
+        ldm             r1,  {r4-r5, r10}
         add             r1,  r1,  r2
         ADJ_ALIGN_DOUBLEWORD_D 3, r6,  r7,  r4,  r5,  r10
         pld             [r1]
         NO_RND_AVG32    r8,  r9,  r6,  r7,  r5,  r10, r12
         subs            r3,  r3,  #1
-        stmia           r0,  {r8-r9}
+        stm             r0,  {r8-r9}
         add             r0,  r0,  r2
         bne             4b
-        ldmfd           sp!, {r4-r10,pc} @@ update PC with LR content.
+        pop             {r4-r10,pc}
         .endfunc
 
 
@@ -331,97 +331,97 @@
         @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
         @ block = word aligned, pixles = unaligned
         pld             [r1]
-        stmfd           sp!, {r4-r11,lr} @ R14 is also called LR
+        push            {r4-r11,lr}
         mov             r3,  r3,  lsr #1
         ldr             r12, =0xfefefefe
         JMP_ALIGN       r5,  r1
 1:
-        ldmia           r1,  {r4-r5}
+        ldm             r1,  {r4-r5}
         add             r1,  r1,  r2
-6:      ldmia           r1,  {r6-r7}
+6:      ldm             r1,  {r6-r7}
         add             r1,  r1,  r2
         pld             [r1]
         RND_AVG32       r8,  r9,  r4,  r5,  r6,  r7,  r12
-        ldmia           r1,  {r4-r5}
+        ldm             r1,  {r4-r5}
         add             r1,  r1,  r2
-        stmia           r0,  {r8-r9}
+        stm             r0,  {r8-r9}
         add             r0,  r0,  r2
         pld             [r1]
         RND_AVG32       r8,  r9,  r6,  r7,  r4,  r5,  r12
         subs            r3,  r3,  #1
-        stmia           r0,  {r8-r9}
+        stm             r0,  {r8-r9}
         add             r0,  r0,  r2
         bne             6b
-        ldmfd           sp!, {r4-r11,pc}
+        pop             {r4-r11,pc}
         .align 5
 2:
-        ldmia           r1,  {r4-r6}
+        ldm             r1,  {r4-r6}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 1, r4,  r5,  r6
-6:      ldmia           r1,  {r7-r9}
+6:      ldm             r1,  {r7-r9}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 1, r7,  r8,  r9
         RND_AVG32       r10, r11, r4,  r5,  r7,  r8,  r12
-        stmia           r0,  {r10-r11}
+        stm             r0,  {r10-r11}
         add             r0,  r0,  r2
-        ldmia           r1,  {r4-r6}
+        ldm             r1,  {r4-r6}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 1, r4,  r5,  r6
         subs            r3,  r3,  #1
         RND_AVG32       r10, r11, r7,  r8,  r4,  r5,  r12
-        stmia           r0,  {r10-r11}
+        stm             r0,  {r10-r11}
         add             r0,  r0,  r2
         bne             6b
-        ldmfd           sp!, {r4-r11,pc}
+        pop             {r4-r11,pc}
         .align 5
 3:
-        ldmia           r1,  {r4-r6}
+        ldm             r1,  {r4-r6}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 2, r4,  r5,  r6
-6:      ldmia           r1,  {r7-r9}
+6:      ldm             r1,  {r7-r9}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 2, r7,  r8,  r9
         RND_AVG32       r10, r11, r4,  r5,  r7,  r8,  r12
-        stmia           r0,  {r10-r11}
+        stm             r0,  {r10-r11}
         add             r0,  r0,  r2
-        ldmia           r1,  {r4-r6}
+        ldm             r1,  {r4-r6}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 2, r4,  r5,  r6
         subs            r3,  r3,  #1
         RND_AVG32       r10, r11, r7,  r8,  r4,  r5,  r12
-        stmia           r0,  {r10-r11}
+        stm             r0,  {r10-r11}
         add             r0,  r0,  r2
         bne             6b
-        ldmfd           sp!, {r4-r11,pc}
+        pop             {r4-r11,pc}
         .align 5
 4:
-        ldmia           r1,  {r4-r6}
+        ldm             r1,  {r4-r6}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 3, r4,  r5,  r6
-6:      ldmia           r1,  {r7-r9}
+6:      ldm             r1,  {r7-r9}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 3, r7,  r8,  r9
         RND_AVG32       r10, r11, r4,  r5,  r7,  r8,  r12
-        stmia           r0,  {r10-r11}
+        stm             r0,  {r10-r11}
         add             r0,  r0,  r2
-        ldmia           r1,  {r4-r6}
+        ldm             r1,  {r4-r6}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 3, r4,  r5,  r6
         subs            r3,  r3,  #1
         RND_AVG32       r10, r11, r7,  r8,  r4,  r5,  r12
-        stmia           r0,  {r10-r11}
+        stm             r0,  {r10-r11}
         add             r0,  r0,  r2
         bne             6b
-        ldmfd           sp!, {r4-r11,pc}
+        pop             {r4-r11,pc}
         .endfunc
 
         .align 5
@@ -429,97 +429,97 @@
         @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
         @ block = word aligned, pixles = unaligned
         pld             [r1]
-        stmfd           sp!, {r4-r11,lr} @ R14 is also called LR
+        push            {r4-r11,lr}
         mov             r3,  r3,  lsr #1
         ldr             r12, =0xfefefefe
         JMP_ALIGN       r5,  r1
 1:
-        ldmia           r1,  {r4-r5}
+        ldm             r1,  {r4-r5}
         add             r1,  r1,  r2
-6:      ldmia           r1,  {r6-r7}
+6:      ldm             r1,  {r6-r7}
         add             r1,  r1,  r2
         pld             [r1]
         NO_RND_AVG32    r8,  r9,  r4,  r5,  r6,  r7,  r12
-        ldmia           r1,  {r4-r5}
+        ldm             r1,  {r4-r5}
         add             r1,  r1,  r2
-        stmia           r0,  {r8-r9}
+        stm             r0,  {r8-r9}
         add             r0,  r0,  r2
         pld             [r1]
         NO_RND_AVG32    r8,  r9,  r6,  r7,  r4,  r5,  r12
         subs            r3,  r3,  #1
-        stmia           r0,  {r8-r9}
+        stm             r0,  {r8-r9}
         add             r0,  r0,  r2
         bne             6b
-        ldmfd           sp!, {r4-r11,pc}
+        pop             {r4-r11,pc}
         .align 5
 2:
-        ldmia           r1,  {r4-r6}
+        ldm             r1,  {r4-r6}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 1, r4,  r5,  r6
-6:      ldmia           r1,  {r7-r9}
+6:      ldm             r1,  {r7-r9}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 1, r7,  r8,  r9
         NO_RND_AVG32    r10, r11, r4,  r5,  r7,  r8,  r12
-        stmia           r0,  {r10-r11}
+        stm             r0,  {r10-r11}
         add             r0,  r0,  r2
-        ldmia           r1,  {r4-r6}
+        ldm             r1,  {r4-r6}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 1, r4,  r5,  r6
         subs            r3,  r3,  #1
         NO_RND_AVG32    r10, r11, r7,  r8,  r4,  r5,  r12
-        stmia           r0,  {r10-r11}
+        stm             r0,  {r10-r11}
         add             r0,  r0,  r2
         bne             6b
-        ldmfd           sp!, {r4-r11,pc}
+        pop             {r4-r11,pc}
         .align 5
 3:
-        ldmia           r1,  {r4-r6}
+        ldm             r1,  {r4-r6}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 2, r4,  r5,  r6
-6:      ldmia           r1,  {r7-r9}
+6:      ldm             r1,  {r7-r9}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 2, r7,  r8,  r9
         NO_RND_AVG32    r10, r11, r4,  r5,  r7,  r8,  r12
-        stmia           r0,  {r10-r11}
+        stm             r0,  {r10-r11}
         add             r0,  r0,  r2
-        ldmia           r1,  {r4-r6}
+        ldm             r1,  {r4-r6}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 2, r4,  r5,  r6
         subs            r3,  r3,  #1
         NO_RND_AVG32    r10, r11, r7,  r8,  r4,  r5,  r12
-        stmia           r0,  {r10-r11}
+        stm             r0,  {r10-r11}
         add             r0,  r0,  r2
         bne             6b
-        ldmfd           sp!, {r4-r11,pc}
+        pop             {r4-r11,pc}
         .align 5
 4:
-        ldmia           r1,  {r4-r6}
+        ldm             r1,  {r4-r6}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 3, r4,  r5,  r6
-6:      ldmia           r1,  {r7-r9}
+6:      ldm             r1,  {r7-r9}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 3, r7,  r8,  r9
         NO_RND_AVG32    r10, r11, r4,  r5,  r7,  r8,  r12
-        stmia           r0,  {r10-r11}
+        stm             r0,  {r10-r11}
         add             r0,  r0,  r2
-        ldmia           r1,  {r4-r6}
+        ldm             r1,  {r4-r6}
         add             r1,  r1,  r2
         pld             [r1]
         ADJ_ALIGN_DOUBLEWORD 3, r4,  r5,  r6
         subs            r3,  r3,  #1
         NO_RND_AVG32    r10, r11, r7,  r8,  r4,  r5,  r12
-        stmia           r0,  {r10-r11}
+        stm             r0,  {r10-r11}
         add             r0,  r0,  r2
         bne             6b
-        ldmfd           sp!, {r4-r11,pc}
+        pop             {r4-r11,pc}
         .endfunc
 
         .ltorg
@@ -529,11 +529,11 @@
         @ l1=  (a & 0x03030303) + (b & 0x03030303) ?(+ 0x02020202)
         @ h1= ((a & 0xFCFCFCFCUL) >> 2) + ((b & 0xFCFCFCFCUL) >> 2)
 .if \align == 0
-        ldmia           r1,  {r6-r8}
+        ldm             r1,  {r6-r8}
 .elseif \align == 3
-        ldmia           r1,  {r5-r7}
+        ldm             r1,  {r5-r7}
 .else
-        ldmia           r1,  {r8-r10}
+        ldm             r1,  {r8-r10}
 .endif
         add             r1,  r1,  r2
         pld             [r1]
@@ -571,9 +571,9 @@
 
 .macro RND_XY2_EXPAND align, rnd
         RND_XY2_IT      \align, \rnd
-6:      stmfd           sp!, {r8-r11}
+6:      push            {r8-r11}
         RND_XY2_IT      \align, \rnd
-        ldmfd           sp!, {r4-r7}
+        pop             {r4-r7}
         add             r4,  r4,  r8
         add             r5,  r5,  r9
         ldr             r14, =0x0f0f0f0f
@@ -583,10 +583,10 @@
         and             r5,  r14, r5,  lsr #2
         add             r4,  r4,  r6
         add             r5,  r5,  r7
-        stmia           r0,  {r4-r5}
+        stm             r0,  {r4-r5}
         add             r0,  r0,  r2
         bge             6b
-        ldmfd           sp!, {r4-r11,pc}
+        pop             {r4-r11,pc}
 .endm
 
         .align 5
@@ -594,7 +594,7 @@
         @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
         @ block = word aligned, pixles = unaligned
         pld             [r1]
-        stmfd           sp!, {r4-r11,lr} @ R14 is also called LR
+        push            {r4-r11,lr} @ R14 is also called LR
         JMP_ALIGN       r5,  r1
 1:
         RND_XY2_EXPAND  0, lsl
@@ -617,7 +617,7 @@
         @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
         @ block = word aligned, pixles = unaligned
         pld             [r1]
-        stmfd           sp!, {r4-r11,lr} @ R14 is also called LR
+        push            {r4-r11,lr}
         JMP_ALIGN       r5,  r1
 1:
         RND_XY2_EXPAND  0, lsr