Merge remote-tracking branch 'qatar/release/9' into release/1.1
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 7 Mar 2014 02:59:11 +0000 (03:59 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 7 Mar 2014 02:59:18 +0000 (03:59 +0100)
* qatar/release/9:
  arm: hpeldsp: prevent overreads in armv6 asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/arm/dsputil_armv6.S
libavutil/arm/asm.S

@@@ -1,20 -1,20 +1,20 @@@
  /*
   * Copyright (c) 2009 Mans Rullgard <mans@mansr.com>
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
@@@ -132,11 -132,12 +132,12 @@@ function ff_put_pixels8_y2_armv6, expor
          uhadd8          r9,  r5,  r7
          eor             r11, r5,  r7
          and             r10, r10, r12
-         ldr_pre         r4,  r1,  r2
+         ldrc_pre        ne,  r4,  r1,  r2
          uadd8           r8,  r8,  r10
          and             r11, r11, r12
          uadd8           r9,  r9,  r11
-         ldr             r5,  [r1, #4]
+         it              ne
+         ldrne           r5,  [r1, #4]
          uhadd8          r10, r4,  r6
          eor             r6,  r4,  r6
          uhadd8          r11, r5,  r7
          eor             r7,  r5,  r7
          uadd8           r10, r10, r6
          and             r7,  r7,  r12
-         ldr_pre         r6,  r1,  r2
+         ldrc_pre        ne,  r6,  r1,  r2
          uadd8           r11, r11, r7
          strd_post       r8,  r9,  r0,  r2
-         ldr             r7,  [r1, #4]
+         it              ne
+         ldrne           r7,  [r1, #4]
          strd_post       r10, r11, r0,  r2
          bne             1b
  
@@@ -192,13 -194,15 +194,15 @@@ function ff_put_pixels8_y2_no_rnd_armv6
  1:
          subs            r3,  r3,  #2
          uhadd8          r8,  r4,  r6
-         ldr_pre         r4,  r1,  r2
+         ldrc_pre        ne,  r4,  r1,  r2
          uhadd8          r9,  r5,  r7
-         ldr             r5,  [r1, #4]
+         it              ne
+         ldrne           r5,  [r1, #4]
          uhadd8          r12, r4,  r6
-         ldr_pre         r6,  r1,  r2
+         ldrc_pre        ne,  r6,  r1,  r2
          uhadd8          r14, r5,  r7
-         ldr             r7,  [r1, #4]
+         it              ne
+         ldrne           r7,  [r1, #4]
          stm             r0,  {r8,r9}
          add             r0,  r0,  r2
          stm             r0,  {r12,r14}
diff --combined libavutil/arm/asm.S
@@@ -1,20 -1,20 +1,20 @@@
  /*
   * Copyright (c) 2008 Mans Rullgard <mans@mansr.com>
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
@@@ -212,6 -212,13 +212,13 @@@ T       ldr             \rt, [\rn
  T       add             \rn, \rn, \rm
  .endm
  
+ .macro  ldrc_pre        cc,  rt,  rn,  rm:vararg
+ A       ldr\cc          \rt, [\rn, \rm]!
+ T       itt             \cc
+ T       add\cc          \rn, \rn, \rm
+ T       ldr\cc          \rt, [\rn]
+ .endm
  .macro  ldrd_reg        rt,  rt2, rn,  rm
  A       ldrd            \rt, \rt2, [\rn, \rm]
  T       add             \rt, \rn, \rm