Advertisement
alllexx

Untitled

Mar 7th, 2011
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 32.88 KB | None | 0 0
  1. --- libavcodec/arm/dsputil_arm.S    2011-03-03 09:38:36.000000000 +0200
  2. +++ libavcodec/arm/dsputil_arm.S    2011-03-03 12:10:48.942743550 +0200
  3. @@ -22,7 +22,7 @@
  4.  #include "config.h"
  5.  #include "asm.S"
  6.  
  7. -        preserve8
  8. +        //preserve8
  9.  
  10.  #if !HAVE_PLD
  11.  .macro pld reg
  12. @@ -107,50 +107,50 @@
  13.          @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
  14.          @ block = word aligned, pixles = unaligned
  15.          pld             [r1]
  16. -        push            {r4-r11, lr}
  17. +        stmfd sp!,            {r4-r11, lr}
  18.          JMP_ALIGN       r5,  r1
  19.  1:
  20. -        ldm             r1,  {r4-r7}
  21. +        ldmia             r1,  {r4-r7}
  22.          add             r1,  r1,  r2
  23. -        stm             r0,  {r4-r7}
  24. +        stmia             r0,  {r4-r7}
  25.          pld             [r1]
  26.          subs            r3,  r3,  #1
  27.          add             r0,  r0,  r2
  28.          bne             1b
  29. -        pop             {r4-r11, pc}
  30. +        ldmfd sp!,             {r4-r11, pc}
  31.          .align 5
  32.  2:
  33. -        ldm             r1,  {r4-r8}
  34. +        ldmia             r1,  {r4-r8}
  35.          add             r1,  r1,  r2
  36.          ALIGN_QWORD_D   1,   r9,  r10, r11, r12, r4,  r5,  r6,  r7,  r8
  37.          pld             [r1]
  38.          subs            r3,  r3,  #1
  39. -        stm             r0,  {r9-r12}
  40. +        stmia             r0,  {r9-r12}
  41.          add             r0,  r0,  r2
  42.          bne             2b
  43. -        pop             {r4-r11, pc}
  44. +        ldmfd sp!,             {r4-r11, pc}
  45.          .align 5
  46.  3:
  47. -        ldm             r1,  {r4-r8}
  48. +        ldmia             r1,  {r4-r8}
  49.          add             r1,  r1,  r2
  50.          ALIGN_QWORD_D   2,   r9,  r10, r11, r12, r4,  r5,  r6,  r7,  r8
  51.          pld             [r1]
  52.          subs            r3,  r3,  #1
  53. -        stm             r0,  {r9-r12}
  54. +        stmia             r0,  {r9-r12}
  55.          add             r0,  r0,  r2
  56.          bne             3b
  57. -        pop             {r4-r11, pc}
  58. +        ldmfd sp!,             {r4-r11, pc}
  59.          .align 5
  60.  4:
  61. -        ldm             r1,  {r4-r8}
  62. +        ldmia             r1,  {r4-r8}
  63.          add             r1,  r1,  r2
  64.          ALIGN_QWORD_D   3,   r9,  r10, r11, r12, r4,  r5,  r6,  r7,  r8
  65.          pld             [r1]
  66.          subs            r3,  r3,  #1
  67. -        stm             r0,  {r9-r12}
  68. +        stmia             r0,  {r9-r12}
  69.          add             r0,  r0,  r2
  70.          bne             4b
  71. -        pop             {r4-r11,pc}
  72. +        ldmfd sp!,             {r4-r11,pc}
  73.  endfunc
  74.  
  75.  @ ----------------------------------------------------------------
  76. @@ -159,50 +159,50 @@
  77.          @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
  78.          @ block = word aligned, pixles = unaligned
  79.          pld             [r1]
  80. -        push            {r4-r5,lr}
  81. +        stmfd sp!,            {r4-r5,lr}
  82.          JMP_ALIGN       r5,  r1
  83.  1:
  84. -        ldm             r1,  {r4-r5}
  85. +        ldmia             r1,  {r4-r5}
  86.          add             r1,  r1,  r2
  87.          subs            r3,  r3,  #1
  88.          pld             [r1]
  89. -        stm             r0,  {r4-r5}
  90. +        stmia             r0,  {r4-r5}
  91.          add             r0,  r0,  r2
  92.          bne             1b
  93. -        pop             {r4-r5,pc}
  94. +        ldmfd sp!,             {r4-r5,pc}
  95.          .align 5
  96.  2:
  97. -        ldm             r1,  {r4-r5, r12}
  98. +        ldmia             r1,  {r4-r5, r12}
  99.          add             r1,  r1,  r2
  100.          ALIGN_DWORD     1,   r4,  r5,  r12
  101.          pld             [r1]
  102.          subs            r3,  r3,  #1
  103. -        stm             r0,  {r4-r5}
  104. +        stmia             r0,  {r4-r5}
  105.          add             r0,  r0,  r2
  106.          bne             2b
  107. -        pop             {r4-r5,pc}
  108. +        ldmfd sp!,             {r4-r5,pc}
  109.          .align 5
  110.  3:
  111. -        ldm             r1,  {r4-r5, r12}
  112. +        ldmia             r1,  {r4-r5, r12}
  113.          add             r1,  r1,  r2
  114.          ALIGN_DWORD     2,   r4,  r5,  r12
  115.          pld             [r1]
  116.          subs            r3,  r3,  #1
  117. -        stm             r0,  {r4-r5}
  118. +        stmia             r0,  {r4-r5}
  119.          add             r0,  r0,  r2
  120.          bne             3b
  121. -        pop             {r4-r5,pc}
  122. +        ldmfd sp!,             {r4-r5,pc}
  123.          .align 5
  124.  4:
  125. -        ldm             r1,  {r4-r5, r12}
  126. +        ldmia             r1,  {r4-r5, r12}
  127.          add             r1,  r1,  r2
  128.          ALIGN_DWORD     3,   r4,  r5,  r12
  129.          pld             [r1]
  130.          subs            r3,  r3,  #1
  131. -        stm             r0,  {r4-r5}
  132. +        stmia             r0,  {r4-r5}
  133.          add             r0,  r0,  r2
  134.          bne             4b
  135. -        pop             {r4-r5,pc}
  136. +        ldmfd sp!,             {r4-r5,pc}
  137.  endfunc
  138.  
  139.  @ ----------------------------------------------------------------
  140. @@ -211,58 +211,58 @@
  141.          @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
  142.          @ block = word aligned, pixles = unaligned
  143.          pld             [r1]
  144. -        push            {r4-r10,lr}
  145. +        stmfd sp!,            {r4-r10,lr}
  146.          ldr             r12, =0xfefefefe
  147.          JMP_ALIGN       r5,  r1
  148.  1:
  149. -        ldm             r1,  {r4-r5, r10}
  150. +        ldmia             r1,  {r4-r5, r10}
  151.          add             r1,  r1,  r2
  152.          ALIGN_DWORD_D   1,   r6,  r7,  r4,  r5,  r10
  153.          pld             [r1]
  154.          RND_AVG32       r8,  r9,  r4,  r5,  r6,  r7,  r12
  155.          subs            r3,  r3,  #1
  156. -        stm             r0,  {r8-r9}
  157. +        stmia             r0,  {r8-r9}
  158.          add             r0,  r0,  r2
  159.          bne             1b
  160. -        pop             {r4-r10,pc}
  161. +        ldmfd sp!,             {r4-r10,pc}
  162.          .align 5
  163.  2:
  164. -        ldm             r1,  {r4-r5, r10}
  165. +        ldmia             r1,  {r4-r5, r10}
  166.          add             r1,  r1,  r2
  167.          ALIGN_DWORD_D   1,   r6,  r7,  r4,  r5,  r10
  168.          ALIGN_DWORD_D   2,   r8,  r9,  r4,  r5,  r10
  169.          pld             [r1]
  170.          RND_AVG32       r4,  r5,  r6,  r7,  r8,  r9,  r12
  171.          subs            r3,  r3,  #1
  172. -        stm             r0,  {r4-r5}
  173. +        stmia             r0,  {r4-r5}
  174.          add             r0,  r0,  r2
  175.          bne             2b
  176. -        pop             {r4-r10,pc}
  177. +        ldmfd sp!,             {r4-r10,pc}
  178.          .align 5
  179.  3:
  180. -        ldm             r1,  {r4-r5, r10}
  181. +        ldmia             r1,  {r4-r5, r10}
  182.          add             r1,  r1,  r2
  183.          ALIGN_DWORD_D   2,   r6,  r7,  r4,  r5,  r10
  184.          ALIGN_DWORD_D   3,   r8,  r9,  r4,  r5,  r10
  185.          pld             [r1]
  186.          RND_AVG32       r4,  r5,  r6,  r7,  r8,  r9,  r12
  187.          subs            r3,  r3,  #1
  188. -        stm             r0,  {r4-r5}
  189. +        stmia             r0,  {r4-r5}
  190.          add             r0,  r0,  r2
  191.          bne             3b
  192. -        pop             {r4-r10,pc}
  193. +        ldmfd sp!,             {r4-r10,pc}
  194.          .align 5
  195.  4:
  196. -        ldm             r1,  {r4-r5, r10}
  197. +        ldmia             r1,  {r4-r5, r10}
  198.          add             r1,  r1,  r2
  199.          ALIGN_DWORD_D   3,   r6,  r7,  r4,  r5,  r10
  200.          pld             [r1]
  201.          RND_AVG32       r8,  r9,  r6,  r7,  r5,  r10, r12
  202.          subs            r3,  r3,  #1
  203. -        stm             r0,  {r8-r9}
  204. +        stmia             r0,  {r8-r9}
  205.          add             r0,  r0,  r2
  206.          bne             4b
  207. -        pop             {r4-r10,pc}
  208. +        ldmfd sp!,             {r4-r10,pc}
  209.  endfunc
  210.  
  211.          .align 5
  212. @@ -270,58 +270,58 @@
  213.          @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
  214.          @ block = word aligned, pixles = unaligned
  215.          pld             [r1]
  216. -        push            {r4-r10,lr}
  217. +        stmfd sp!,            {r4-r10,lr}
  218.          ldr             r12, =0xfefefefe
  219.          JMP_ALIGN       r5,  r1
  220.  1:
  221. -        ldm             r1,  {r4-r5, r10}
  222. +        ldmia             r1,  {r4-r5, r10}
  223.          add             r1,  r1,  r2
  224.          ALIGN_DWORD_D   1,   r6,  r7,  r4,  r5,  r10
  225.          pld             [r1]
  226.          NO_RND_AVG32    r8,  r9,  r4,  r5,  r6,  r7,  r12
  227.          subs            r3,  r3,  #1
  228. -        stm             r0,  {r8-r9}
  229. +        stmia             r0,  {r8-r9}
  230.          add             r0,  r0,  r2
  231.          bne             1b
  232. -        pop             {r4-r10,pc}
  233. +        ldmfd sp!,             {r4-r10,pc}
  234.          .align 5
  235.  2:
  236. -        ldm             r1,  {r4-r5, r10}
  237. +        ldmia             r1,  {r4-r5, r10}
  238.          add             r1,  r1,  r2
  239.          ALIGN_DWORD_D   1,   r6,  r7,  r4,  r5,  r10
  240.          ALIGN_DWORD_D   2,   r8,  r9,  r4,  r5,  r10
  241.          pld             [r1]
  242.          NO_RND_AVG32    r4,  r5,  r6,  r7,  r8,  r9,  r12
  243.          subs            r3,  r3,  #1
  244. -        stm             r0,  {r4-r5}
  245. +        stmia             r0,  {r4-r5}
  246.          add             r0,  r0,  r2
  247.          bne             2b
  248. -        pop             {r4-r10,pc}
  249. +        ldmfd sp!,             {r4-r10,pc}
  250.          .align 5
  251.  3:
  252. -        ldm             r1,  {r4-r5, r10}
  253. +        ldmia             r1,  {r4-r5, r10}
  254.          add             r1,  r1,  r2
  255.          ALIGN_DWORD_D   2,   r6,  r7,  r4,  r5,  r10
  256.          ALIGN_DWORD_D   3,   r8,  r9,  r4,  r5,  r10
  257.          pld             [r1]
  258.          NO_RND_AVG32    r4,  r5,  r6,  r7,  r8,  r9,  r12
  259.          subs            r3,  r3,  #1
  260. -        stm             r0,  {r4-r5}
  261. +        stmia             r0,  {r4-r5}
  262.          add             r0,  r0,  r2
  263.          bne             3b
  264. -        pop             {r4-r10,pc}
  265. +        ldmfd sp!,             {r4-r10,pc}
  266.          .align 5
  267.  4:
  268. -        ldm             r1,  {r4-r5, r10}
  269. +        ldmia             r1,  {r4-r5, r10}
  270.          add             r1,  r1,  r2
  271.          ALIGN_DWORD_D   3,   r6,  r7,  r4,  r5,  r10
  272.          pld             [r1]
  273.          NO_RND_AVG32    r8,  r9,  r6,  r7,  r5,  r10, r12
  274.          subs            r3,  r3,  #1
  275. -        stm             r0,  {r8-r9}
  276. +        stmia             r0,  {r8-r9}
  277.          add             r0,  r0,  r2
  278.          bne             4b
  279. -        pop             {r4-r10,pc}
  280. +        ldmfd sp!,             {r4-r10,pc}
  281.  endfunc
  282.  
  283.  
  284. @@ -331,97 +331,97 @@
  285.          @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
  286.          @ block = word aligned, pixles = unaligned
  287.          pld             [r1]
  288. -        push            {r4-r11,lr}
  289. +        stmfd sp!,            {r4-r11,lr}
  290.          mov             r3,  r3,  lsr #1
  291.          ldr             r12, =0xfefefefe
  292.          JMP_ALIGN       r5,  r1
  293.  1:
  294. -        ldm             r1,  {r4-r5}
  295. +        ldmia             r1,  {r4-r5}
  296.          add             r1,  r1,  r2
  297. -6:      ldm             r1,  {r6-r7}
  298. +6:      ldmia             r1,  {r6-r7}
  299.          add             r1,  r1,  r2
  300.          pld             [r1]
  301.          RND_AVG32       r8,  r9,  r4,  r5,  r6,  r7,  r12
  302. -        ldm             r1,  {r4-r5}
  303. +        ldmia             r1,  {r4-r5}
  304.          add             r1,  r1,  r2
  305. -        stm             r0,  {r8-r9}
  306. +        stmia             r0,  {r8-r9}
  307.          add             r0,  r0,  r2
  308.          pld             [r1]
  309.          RND_AVG32       r8,  r9,  r6,  r7,  r4,  r5,  r12
  310.          subs            r3,  r3,  #1
  311. -        stm             r0,  {r8-r9}
  312. +        stmia             r0,  {r8-r9}
  313.          add             r0,  r0,  r2
  314.          bne             6b
  315. -        pop             {r4-r11,pc}
  316. +        ldmfd sp!,             {r4-r11,pc}
  317.          .align 5
  318.  2:
  319. -        ldm             r1,  {r4-r6}
  320. +        ldmia             r1,  {r4-r6}
  321.          add             r1,  r1,  r2
  322.          pld             [r1]
  323.          ALIGN_DWORD     1,   r4,  r5,  r6
  324. -6:      ldm             r1,  {r7-r9}
  325. +6:      ldmia             r1,  {r7-r9}
  326.          add             r1,  r1,  r2
  327.          pld             [r1]
  328.          ALIGN_DWORD     1,   r7,  r8,  r9
  329.          RND_AVG32       r10, r11, r4,  r5,  r7,  r8,  r12
  330. -        stm             r0,  {r10-r11}
  331. +        stmia             r0,  {r10-r11}
  332.          add             r0,  r0,  r2
  333. -        ldm             r1,  {r4-r6}
  334. +        ldmia             r1,  {r4-r6}
  335.          add             r1,  r1,  r2
  336.          pld             [r1]
  337.          ALIGN_DWORD     1,   r4,  r5,  r6
  338.          subs            r3,  r3,  #1
  339.          RND_AVG32       r10, r11, r7,  r8,  r4,  r5,  r12
  340. -        stm             r0,  {r10-r11}
  341. +        stmia             r0,  {r10-r11}
  342.          add             r0,  r0,  r2
  343.          bne             6b
  344. -        pop             {r4-r11,pc}
  345. +        ldmfd sp!,             {r4-r11,pc}
  346.          .align 5
  347.  3:
  348. -        ldm             r1,  {r4-r6}
  349. +        ldmia             r1,  {r4-r6}
  350.          add             r1,  r1,  r2
  351.          pld             [r1]
  352.          ALIGN_DWORD     2,   r4,  r5,  r6
  353. -6:      ldm             r1,  {r7-r9}
  354. +6:      ldmia             r1,  {r7-r9}
  355.          add             r1,  r1,  r2
  356.          pld             [r1]
  357.          ALIGN_DWORD     2,   r7,  r8,  r9
  358.          RND_AVG32       r10, r11, r4,  r5,  r7,  r8,  r12
  359. -        stm             r0,  {r10-r11}
  360. +        stmia             r0,  {r10-r11}
  361.          add             r0,  r0,  r2
  362. -        ldm             r1,  {r4-r6}
  363. +        ldmia             r1,  {r4-r6}
  364.          add             r1,  r1,  r2
  365.          pld             [r1]
  366.          ALIGN_DWORD     2,   r4,  r5,  r6
  367.          subs            r3,  r3,  #1
  368.          RND_AVG32       r10, r11, r7,  r8,  r4,  r5,  r12
  369. -        stm             r0,  {r10-r11}
  370. +        stmia             r0,  {r10-r11}
  371.          add             r0,  r0,  r2
  372.          bne             6b
  373. -        pop             {r4-r11,pc}
  374. +        ldmfd sp!,             {r4-r11,pc}
  375.          .align 5
  376.  4:
  377. -        ldm             r1,  {r4-r6}
  378. +        ldmia             r1,  {r4-r6}
  379.          add             r1,  r1,  r2
  380.          pld             [r1]
  381.          ALIGN_DWORD     3,   r4,  r5,  r6
  382. -6:      ldm             r1,  {r7-r9}
  383. +6:      ldmia             r1,  {r7-r9}
  384.          add             r1,  r1,  r2
  385.          pld             [r1]
  386.          ALIGN_DWORD     3,   r7,  r8,  r9
  387.          RND_AVG32       r10, r11, r4,  r5,  r7,  r8,  r12
  388. -        stm             r0,  {r10-r11}
  389. +        stmia             r0,  {r10-r11}
  390.          add             r0,  r0,  r2
  391. -        ldm             r1,  {r4-r6}
  392. +        ldmia             r1,  {r4-r6}
  393.          add             r1,  r1,  r2
  394.          pld             [r1]
  395.          ALIGN_DWORD     3,   r4,  r5,  r6
  396.          subs            r3,  r3,  #1
  397.          RND_AVG32       r10, r11, r7,  r8,  r4,  r5,  r12
  398. -        stm             r0,  {r10-r11}
  399. +        stmia             r0,  {r10-r11}
  400.          add             r0,  r0,  r2
  401.          bne             6b
  402. -        pop             {r4-r11,pc}
  403. +        ldmfd sp!,             {r4-r11,pc}
  404.  endfunc
  405.  
  406.          .align 5
  407. @@ -429,97 +429,97 @@
  408.          @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
  409.          @ block = word aligned, pixles = unaligned
  410.          pld             [r1]
  411. -        push            {r4-r11,lr}
  412. +        stmfd sp!,            {r4-r11,lr}
  413.          mov             r3,  r3,  lsr #1
  414.          ldr             r12, =0xfefefefe
  415.          JMP_ALIGN       r5,  r1
  416.  1:
  417. -        ldm             r1,  {r4-r5}
  418. +        ldmia             r1,  {r4-r5}
  419.          add             r1,  r1,  r2
  420. -6:      ldm             r1,  {r6-r7}
  421. +6:      ldmia             r1,  {r6-r7}
  422.          add             r1,  r1,  r2
  423.          pld             [r1]
  424.          NO_RND_AVG32    r8,  r9,  r4,  r5,  r6,  r7,  r12
  425. -        ldm             r1,  {r4-r5}
  426. +        ldmia             r1,  {r4-r5}
  427.          add             r1,  r1,  r2
  428. -        stm             r0,  {r8-r9}
  429. +        stmia             r0,  {r8-r9}
  430.          add             r0,  r0,  r2
  431.          pld             [r1]
  432.          NO_RND_AVG32    r8,  r9,  r6,  r7,  r4,  r5,  r12
  433.          subs            r3,  r3,  #1
  434. -        stm             r0,  {r8-r9}
  435. +        stmia             r0,  {r8-r9}
  436.          add             r0,  r0,  r2
  437.          bne             6b
  438. -        pop             {r4-r11,pc}
  439. +        ldmfd sp!,             {r4-r11,pc}
  440.          .align 5
  441.  2:
  442. -        ldm             r1,  {r4-r6}
  443. +        ldmia             r1,  {r4-r6}
  444.          add             r1,  r1,  r2
  445.          pld             [r1]
  446.          ALIGN_DWORD     1,   r4,  r5,  r6
  447. -6:      ldm             r1,  {r7-r9}
  448. +6:      ldmia             r1,  {r7-r9}
  449.          add             r1,  r1,  r2
  450.          pld             [r1]
  451.          ALIGN_DWORD     1,   r7,  r8,  r9
  452.          NO_RND_AVG32    r10, r11, r4,  r5,  r7,  r8,  r12
  453. -        stm             r0,  {r10-r11}
  454. +        stmia             r0,  {r10-r11}
  455.          add             r0,  r0,  r2
  456. -        ldm             r1,  {r4-r6}
  457. +        ldmia             r1,  {r4-r6}
  458.          add             r1,  r1,  r2
  459.          pld             [r1]
  460.          ALIGN_DWORD     1,   r4,  r5,  r6
  461.          subs            r3,  r3,  #1
  462.          NO_RND_AVG32    r10, r11, r7,  r8,  r4,  r5,  r12
  463. -        stm             r0,  {r10-r11}
  464. +        stmia             r0,  {r10-r11}
  465.          add             r0,  r0,  r2
  466.          bne             6b
  467. -        pop             {r4-r11,pc}
  468. +        ldmfd sp!,             {r4-r11,pc}
  469.          .align 5
  470.  3:
  471. -        ldm             r1,  {r4-r6}
  472. +        ldmia             r1,  {r4-r6}
  473.          add             r1,  r1,  r2
  474.          pld             [r1]
  475.          ALIGN_DWORD     2,   r4,  r5,  r6
  476. -6:      ldm             r1,  {r7-r9}
  477. +6:      ldmia             r1,  {r7-r9}
  478.          add             r1,  r1,  r2
  479.          pld             [r1]
  480.          ALIGN_DWORD     2,   r7,  r8,  r9
  481.          NO_RND_AVG32    r10, r11, r4,  r5,  r7,  r8,  r12
  482. -        stm             r0,  {r10-r11}
  483. +        stmia             r0,  {r10-r11}
  484.          add             r0,  r0,  r2
  485. -        ldm             r1,  {r4-r6}
  486. +        ldmia             r1,  {r4-r6}
  487.          add             r1,  r1,  r2
  488.          pld             [r1]
  489.          ALIGN_DWORD     2,   r4,  r5,  r6
  490.          subs            r3,  r3,  #1
  491.          NO_RND_AVG32    r10, r11, r7,  r8,  r4,  r5,  r12
  492. -        stm             r0,  {r10-r11}
  493. +        stmia             r0,  {r10-r11}
  494.          add             r0,  r0,  r2
  495.          bne             6b
  496. -        pop             {r4-r11,pc}
  497. +        ldmfd sp!,             {r4-r11,pc}
  498.          .align 5
  499.  4:
  500. -        ldm             r1,  {r4-r6}
  501. +        ldmia             r1,  {r4-r6}
  502.          add             r1,  r1,  r2
  503.          pld             [r1]
  504.          ALIGN_DWORD     3,   r4,  r5,  r6
  505. -6:      ldm             r1,  {r7-r9}
  506. +6:      ldmia             r1,  {r7-r9}
  507.          add             r1,  r1,  r2
  508.          pld             [r1]
  509.          ALIGN_DWORD     3,   r7,  r8,  r9
  510.          NO_RND_AVG32    r10, r11, r4,  r5,  r7,  r8,  r12
  511. -        stm             r0,  {r10-r11}
  512. +        stmia             r0,  {r10-r11}
  513.          add             r0,  r0,  r2
  514. -        ldm             r1,  {r4-r6}
  515. +        ldmia             r1,  {r4-r6}
  516.          add             r1,  r1,  r2
  517.          pld             [r1]
  518.          ALIGN_DWORD     3,   r4,  r5,  r6
  519.          subs            r3,  r3,  #1
  520.          NO_RND_AVG32    r10, r11, r7,  r8,  r4,  r5,  r12
  521. -        stm             r0,  {r10-r11}
  522. +        stmia             r0,  {r10-r11}
  523.          add             r0,  r0,  r2
  524.          bne             6b
  525. -        pop             {r4-r11,pc}
  526. +        ldmfd sp!,             {r4-r11,pc}
  527.  endfunc
  528.  
  529.          .ltorg
  530. @@ -529,11 +529,11 @@
  531.          @ l1=  (a & 0x03030303) + (b & 0x03030303) ?(+ 0x02020202)
  532.          @ h1= ((a & 0xFCFCFCFCUL) >> 2) + ((b & 0xFCFCFCFCUL) >> 2)
  533.  .if \align == 0
  534. -        ldm             r1,  {r6-r8}
  535. +        ldmia r1, {r6-r8}
  536.  .elseif \align == 3
  537. -        ldm             r1,  {r5-r7}
  538. +        ldmia r1, {r5-r7}
  539.  .else
  540. -        ldm             r1,  {r8-r10}
  541. +        ldmia r1, {r8-r10}
  542.  .endif
  543.          add             r1,  r1,  r2
  544.          pld             [r1]
  545. @@ -548,7 +548,8 @@
  546.  .elseif \align == 3
  547.          ALIGN_DWORD_D   3,   r4,  r5,  r5,  r6,  r7
  548.  .endif
  549. -        ldr             r14, =0x03030303
  550. +        @ldr r14, =0x03030303
  551. +   ldr r14, [r12, #0]
  552.          tst             r3,  #1
  553.          and             r8,  r4,  r14
  554.          and             r9,  r5,  r14
  555. @@ -557,13 +558,14 @@
  556.          andeq           r14, r14, r14, \rnd #1
  557.          add             r8,  r8,  r10
  558.          add             r9,  r9,  r11
  559. -        ldr             r12, =0xfcfcfcfc >> 2
  560.          addeq           r8,  r8,  r14
  561.          addeq           r9,  r9,  r14
  562. -        and             r4,  r12, r4,  lsr #2
  563. -        and             r5,  r12, r5,  lsr #2
  564. -        and             r6,  r12, r6,  lsr #2
  565. -        and             r7,  r12, r7,  lsr #2
  566. +        @ldr r12, =0xfcfcfcfc >> 2
  567. +   ldr r14, [r12, #4]     @ 0xFCFCFCFC >> 2
  568. +        and r4, r14, r4, lsr #2
  569. +        and r5, r14, r5, lsr #2
  570. +        and r6, r14, r6, lsr #2
  571. +        and r7, r14, r7, lsr #2
  572.          add             r10, r4,  r6
  573.          add             r11, r5,  r7
  574.          subs            r3,  r3,  #1
  575. @@ -571,22 +573,23 @@
  576.  
  577.  .macro RND_XY2_EXPAND align, rnd
  578.          RND_XY2_IT      \align, \rnd
  579. -6:      push            {r8-r11}
  580. +6:      stmfd sp!, {r8-r11}
  581.          RND_XY2_IT      \align, \rnd
  582. -        pop             {r4-r7}
  583. +        ldmfd sp!, {r4-r7}
  584.          add             r4,  r4,  r8
  585.          add             r5,  r5,  r9
  586. -        ldr             r14, =0x0f0f0f0f
  587. +        @ldr r14, =0x0f0f0f0f
  588. +   ldr r14, [r12, #8]
  589.          add             r6,  r6,  r10
  590.          add             r7,  r7,  r11
  591.          and             r4,  r14, r4,  lsr #2
  592.          and             r5,  r14, r5,  lsr #2
  593.          add             r4,  r4,  r6
  594.          add             r5,  r5,  r7
  595. -        stm             r0,  {r4-r5}
  596. +        stmia r0, {r4-r5}
  597.          add             r0,  r0,  r2
  598.          bge             6b
  599. -        pop             {r4-r11,pc}
  600. +        ldmfd sp!, {r4-r11,pc}
  601.  .endm
  602.  
  603.          .align 5
  604. @@ -594,7 +597,7 @@
  605.          @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
  606.          @ block = word aligned, pixles = unaligned
  607.          pld             [r1]
  608. -        push            {r4-r11,lr} @ R14 is also called LR
  609. +        stmfd sp!,            {r4-r11,lr} @ R14 is also called LR
  610.          JMP_ALIGN       r5,  r1
  611.  1:      RND_XY2_EXPAND  0, lsl
  612.          .align 5
  613. @@ -610,7 +613,7 @@
  614.          @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
  615.          @ block = word aligned, pixles = unaligned
  616.          pld             [r1]
  617. -        push            {r4-r11,lr}
  618. +        stmfd sp!,            {r4-r11,lr}
  619.          JMP_ALIGN       r5,  r1
  620.  1:      RND_XY2_EXPAND  0, lsr
  621.          .align 5
  622. @@ -624,7 +627,7 @@
  623.          .align 5
  624.  @ void ff_add_pixels_clamped_arm(int16_t *block, uint8_t *dest, int stride)
  625.  function ff_add_pixels_clamped_arm, export=1
  626. -        push            {r4-r10}
  627. +        stmfd sp!,            {r4-r10}
  628.          mov             r10, #8
  629.  1:
  630.          ldr             r4,  [r1]               /* load dest */
  631. @@ -707,6 +710,6 @@
  632.          add             r1,  r1,  r2
  633.          bne             1b
  634.  
  635. -        pop             {r4-r10}
  636. +        ldmfd sp!,             {r4-r10}
  637.          bx              lr
  638.  endfunc
  639. diff -wBNru libavcodec/arm/simple_idct_armv6.S libavcodec/arm/simple_idct_armv6.S
  640. --- libavcodec/arm/simple_idct_armv6.S  2011-03-03 09:38:36.000000000 +0200
  641. +++ libavcodec/arm/simple_idct_armv6.S  2011-03-03 10:34:15.000000000 +0200
  642. @@ -59,9 +59,9 @@
  643.  
  644.    Output in registers r4--r11
  645.  */
  646. -        .macro idct_row shift
  647. +        .macro idct_row
  648.          ldr    lr, w46               /* lr  = W4 | (W6 << 16) */
  649. -        mov    r1, #(1<<(\shift-1))
  650. +        mov    r1, #(1<<($0-1))
  651.          smlad  r4, r2, ip, r1
  652.          smlsd  r7, r2, ip, r1
  653.          ldr    ip, w13               /* ip  = W1 | (W3 << 16) */
  654. @@ -100,10 +100,10 @@
  655.  
  656.    Output in registers r4--r11
  657.  */
  658. -        .macro idct_row4 shift
  659. +        .macro idct_row4
  660.          ldr    lr, w46               /* lr =  W4 | (W6 << 16) */
  661.          ldr    r10,w57               /* r10 = W5 | (W7 << 16) */
  662. -        mov    r1, #(1<<(\shift-1))
  663. +        mov    r1, #(1<<($0-1))
  664.          smlad  r4, r2, ip, r1
  665.          smlsd  r7, r2, ip, r1
  666.          ldr    ip, w13               /* ip =  W1 | (W3 << 16) */
  667. @@ -138,28 +138,29 @@
  668.    shift = right-shift amount
  669.    Input/output in registers r4--r11
  670.  */
  671. -        .macro idct_finish_shift shift
  672. +        .macro idct_finish_shift
  673.          add    r3, r4, r8            /* r3 = A0 + B0 */
  674.          sub    r2, r4, r8            /* r2 = A0 - B0 */
  675. -        mov    r4, r3, asr #\shift
  676. -        mov    r8, r2, asr #\shift
  677. +        mov    r4, r3, asr $0
  678. +        mov    r8, r2, asr $0
  679.  
  680.          sub    r3, r5, r9            /* r3 = A1 + B1 */
  681.          add    r2, r5, r9            /* r2 = A1 - B1 */
  682. -        mov    r5, r3, asr #\shift
  683. -        mov    r9, r2, asr #\shift
  684. +        mov    r5, r3, asr $0
  685. +        mov    r9, r2, asr $0
  686.  
  687.          add    r3, r6, r10           /* r3 = A2 + B2 */
  688.          sub    r2, r6, r10           /* r2 = A2 - B2 */
  689. -        mov    r6, r3, asr #\shift
  690. -        mov    r10,r2, asr #\shift
  691. +        mov    r6, r3, asr $0
  692. +        mov    r10,r2, asr $0
  693.  
  694.          add    r3, r7, r11           /* r3 = A3 + B3 */
  695.          sub    r2, r7, r11           /* r2 = A3 - B3 */
  696. -        mov    r7, r3, asr #\shift
  697. -        mov    r11,r2, asr #\shift
  698. +        mov    r7, r3, asr $0
  699. +        mov    r11,r2, asr $0
  700.          .endm
  701.  
  702. +
  703.  /*
  704.    Compute final part of IDCT single row, saturating results at 8 bits.
  705.    shift = right-shift amount
  706. @@ -165,26 +166,26 @@
  707.    shift = right-shift amount
  708.    Input/output in registers r4--r11
  709.  */
  710. -        .macro idct_finish_shift_sat shift
  711. +        .macro idct_finish_shift_sat
  712.          add    r3, r4, r8            /* r3 = A0 + B0 */
  713.          sub    ip, r4, r8            /* ip = A0 - B0 */
  714. -        usat   r4, #8, r3, asr #\shift
  715. -        usat   r8, #8, ip, asr #\shift
  716. +        usat   r4, #8, r3, asr $0
  717. +        usat   r8, #8, ip, asr $0
  718.  
  719.          sub    r3, r5, r9            /* r3 = A1 + B1 */
  720.          add    ip, r5, r9            /* ip = A1 - B1 */
  721. -        usat   r5, #8, r3, asr #\shift
  722. -        usat   r9, #8, ip, asr #\shift
  723. +        usat   r5, #8, r3, asr $0
  724. +        usat   r9, #8, ip, asr $0
  725.  
  726.          add    r3, r6, r10           /* r3 = A2 + B2 */
  727.          sub    ip, r6, r10           /* ip = A2 - B2 */
  728. -        usat   r6, #8, r3, asr #\shift
  729. -        usat   r10,#8, ip, asr #\shift
  730. +        usat   r6, #8, r3, asr $0
  731. +        usat   r10,#8, ip, asr $0
  732.  
  733.          add    r3, r7, r11           /* r3 = A3 + B3 */
  734.          sub    ip, r7, r11           /* ip = A3 - B3 */
  735. -        usat   r7, #8, r3, asr #\shift
  736. -        usat   r11,#8, ip, asr #\shift
  737. +        usat   r7, #8, r3, asr $0
  738. +        usat   r11,#8, ip, asr $0
  739.          .endm
  740.  
  741.  /*
  742. @@ -193,7 +194,7 @@
  743.    r1 = dest
  744.  */
  745.  function idct_row_armv6
  746. -        push   {lr}
  747. +        str    lr, [sp, #-4]!
  748.  
  749.          ldr    lr, [r0, #12]         /* lr = row[7,5] */
  750.          ldr    ip, [r0, #4]          /* ip = row[6,4] */
  751. @@ -203,7 +204,7 @@
  752.          cmpeq  lr, r3
  753.          cmpeq  lr, r2, lsr #16
  754.          beq    1f
  755. -        push   {r1}
  756. +        str    r1, [sp, #-4]!
  757.          ldr    ip, w42               /* ip = W4 | (W2 << 16) */
  758.          cmp    lr, #0
  759.          beq    2f
  760. @@ -213,8 +214,8 @@
  761.  
  762.  2:      idct_row4  ROW_SHIFT
  763.  
  764. -3:      pop    {r1}
  765. -        idct_finish_shift ROW_SHIFT
  766. +3:      ldr    r1, [sp], #4
  767. +        idct_finish_shift #ROW_SHIFT
  768.  
  769.          strh   r4, [r1]
  770.          strh   r5, [r1, #(16*2)]
  771. @@ -225,7 +226,7 @@
  772.          strh   r9, [r1, #(16*5)]
  773.          strh   r8, [r1, #(16*7)]
  774.  
  775. -        pop    {pc}
  776. +        ldr    pc, [sp], #4
  777.  
  778.  1:      mov    r2, r2, lsl #3
  779.          strh   r2, [r1]
  780. @@ -236,7 +237,7 @@
  781.          strh   r2, [r1, #(16*3)]
  782.          strh   r2, [r1, #(16*5)]
  783.          strh   r2, [r1, #(16*7)]
  784. -        pop    {pc}
  785. +        ldr    pc, [sp], #4
  786.  endfunc
  787.  
  788.  /*
  789. @@ -245,14 +246,14 @@
  790.    r1 = dest
  791.  */
  792.  function idct_col_armv6
  793. -        push   {r1, lr}
  794. +        stmfd  sp!, {r1, lr}
  795.  
  796.          ldr    r2, [r0]              /* r2 = row[2,0] */
  797.          ldr    ip, w42               /* ip = W4 | (W2 << 16) */
  798.          ldr    r3, [r0, #8]          /* r3 = row[3,1] */
  799.          idct_row COL_SHIFT
  800. -        pop    {r1}
  801. -        idct_finish_shift COL_SHIFT
  802. +        ldr    r1, [sp], #4
  803. +        idct_finish_shift #COL_SHIFT
  804.  
  805.          strh   r4, [r1]
  806.          strh   r5, [r1, #(16*1)]
  807. @@ -263,7 +264,7 @@
  808.          strh   r9, [r1, #(16*6)]
  809.          strh   r8, [r1, #(16*7)]
  810.  
  811. -        pop    {pc}
  812. +        ldr    pc, [sp], #4
  813.  endfunc
  814.  
  815.  /*
  816. @@ -273,14 +274,14 @@
  817.    r2 = line size
  818.  */
  819.  function idct_col_put_armv6
  820. -        push   {r1, r2, lr}
  821. +        stmfd  sp!, {r1, r2, lr}
  822.  
  823.          ldr    r2, [r0]              /* r2 = row[2,0] */
  824.          ldr    ip, w42               /* ip = W4 | (W2 << 16) */
  825.          ldr    r3, [r0, #8]          /* r3 = row[3,1] */
  826.          idct_row COL_SHIFT
  827. -        pop    {r1, r2}
  828. -        idct_finish_shift_sat COL_SHIFT
  829. +        ldmfd  sp!, {r1, r2}
  830. +        idct_finish_shift_sat #COL_SHIFT
  831.  
  832.          strb   r4, [r1], r2
  833.          strb   r5, [r1], r2
  834. @@ -293,7 +294,7 @@
  835.  
  836.          sub    r1, r1, r2, lsl #3
  837.  
  838. -        pop    {pc}
  839. +        ldr    pc, [sp], #4
  840.  endfunc
  841.  
  842.  /*
  843. @@ -303,13 +304,13 @@
  844.    r2 = line size
  845.  */
  846.  function idct_col_add_armv6
  847. -        push   {r1, r2, lr}
  848. +        stmfd  sp!, {r1, r2, lr}
  849.  
  850.          ldr    r2, [r0]              /* r2 = row[2,0] */
  851.          ldr    ip, w42               /* ip = W4 | (W2 << 16) */
  852.          ldr    r3, [r0, #8]          /* r3 = row[3,1] */
  853.          idct_row COL_SHIFT
  854. -        pop    {r1, r2}
  855. +        ldmfd  sp!, {r1, r2}
  856.          idct_finish
  857.  
  858.          ldrb   r3, [r1]
  859. @@ -348,7 +349,7 @@
  860.  
  861.          sub    r1, r1, r2, lsl #3
  862.  
  863. -        pop    {pc}
  864. +        ldr    pc, [sp], #4
  865.  endfunc
  866.  
  867.  /*
  868. @@ -356,78 +357,78 @@
  869.    func = IDCT row->col function
  870.    width = width of columns in bytes
  871.  */
  872. -        .macro idct_rows func width
  873. -        bl     \func
  874. +        .macro idct_rows
  875. +        bl     $0
  876.          add    r0, r0, #(16*2)
  877. -        add    r1, r1, #\width
  878. -        bl     \func
  879. +        add    r1, r1, $1
  880. +        bl     $0
  881.          add    r0, r0, #(16*2)
  882. -        add    r1, r1, #\width
  883. -        bl     \func
  884. +        add    r1, r1, $1
  885. +        bl     $0
  886.          add    r0, r0, #(16*2)
  887. -        add    r1, r1, #\width
  888. -        bl     \func
  889. +        add    r1, r1, $1
  890. +        bl     $0
  891.          sub    r0, r0, #(16*5)
  892. -        add    r1, r1, #\width
  893. -        bl     \func
  894. +        add    r1, r1, $1
  895. +        bl     $0
  896.          add    r0, r0, #(16*2)
  897. -        add    r1, r1, #\width
  898. -        bl     \func
  899. +        add    r1, r1, $1
  900. +        bl     $0
  901.          add    r0, r0, #(16*2)
  902. -        add    r1, r1, #\width
  903. -        bl     \func
  904. +        add    r1, r1, $1
  905. +        bl     $0
  906.          add    r0, r0, #(16*2)
  907. -        add    r1, r1, #\width
  908. -        bl     \func
  909. +        add    r1, r1, $1
  910. +        bl     $0
  911.  
  912.          sub    r0, r0, #(16*7)
  913.          .endm
  914.  
  915.  /* void ff_simple_idct_armv6(DCTELEM *data); */
  916.  function ff_simple_idct_armv6, export=1
  917. -        push   {r4-r11, lr}
  918. +        stmfd  sp!, {r4-r11, lr}
  919.          sub    sp, sp, #128
  920.  
  921.          mov    r1, sp
  922. -        idct_rows idct_row_armv6, 2
  923. +        idct_rows _idct_row_armv6, #2
  924.          mov    r1, r0
  925.          mov    r0, sp
  926. -        idct_rows idct_col_armv6, 2
  927. +        idct_rows _idct_col_armv6, #2
  928.  
  929.          add    sp, sp, #128
  930. -        pop    {r4-r11, pc}
  931. +        ldmfd  sp!, {r4-r11, pc}
  932.  endfunc
  933.  
  934.  /* ff_simple_idct_add_armv6(uint8_t *dest, int line_size, DCTELEM *data); */
  935.  function ff_simple_idct_add_armv6, export=1
  936. -        push   {r0, r1, r4-r11, lr}
  937. +        stmfd  sp!, {r0, r1, r4-r11, lr}
  938.          sub    sp, sp, #128
  939.  
  940.          mov    r0, r2
  941.          mov    r1, sp
  942. -        idct_rows idct_row_armv6, 2
  943. +        idct_rows _idct_row_armv6, #2
  944.          mov    r0, sp
  945.          ldr    r1, [sp, #128]
  946.          ldr    r2, [sp, #(128+4)]
  947. -        idct_rows idct_col_add_armv6, 1
  948. +        idct_rows _idct_col_add_armv6, #1
  949.  
  950.          add    sp, sp, #(128+8)
  951. -        pop    {r4-r11, pc}
  952. +        ldmfd  sp!, {r4-r11, pc}
  953.  endfunc
  954.  
  955.  /* ff_simple_idct_put_armv6(uint8_t *dest, int line_size, DCTELEM *data); */
  956.  function ff_simple_idct_put_armv6, export=1
  957. -        push   {r0, r1, r4-r11, lr}
  958. +        stmfd  sp!, {r0, r1, r4-r11, lr}
  959.          sub    sp, sp, #128
  960.  
  961.          mov    r0, r2
  962.          mov    r1, sp
  963. -        idct_rows idct_row_armv6, 2
  964. +        idct_rows _idct_row_armv6, #2
  965.          mov    r0, sp
  966.          ldr    r1, [sp, #128]
  967.          ldr    r2, [sp, #(128+4)]
  968. -        idct_rows idct_col_put_armv6, 1
  969. +        idct_rows _idct_col_put_armv6, #1
  970.  
  971.          add    sp, sp, #(128+8)
  972. -        pop    {r4-r11, pc}
  973. +        ldmfd  sp!, {r4-r11, pc}
  974.  endfunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement