Merge remote-tracking branch 'qatar/master'

* qatar/master:
  arm: hpeldsp: prevent overreads in armv6 asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
pull/293/head
Michael Niedermayer 11 years ago
commit a74bab7079
  1. 20
      libavcodec/arm/hpeldsp_armv6.S
  2. 7
      libavutil/arm/asm.S

@ -132,11 +132,12 @@ function ff_put_pixels8_y2_armv6, export=1
uhadd8 r9, r5, r7 uhadd8 r9, r5, r7
eor r11, r5, r7 eor r11, r5, r7
and r10, r10, r12 and r10, r10, r12
ldr_pre r4, r1, r2 ldrc_pre ne, r4, r1, r2
uadd8 r8, r8, r10 uadd8 r8, r8, r10
and r11, r11, r12 and r11, r11, r12
uadd8 r9, r9, r11 uadd8 r9, r9, r11
ldr r5, [r1, #4] it ne
ldrne r5, [r1, #4]
uhadd8 r10, r4, r6 uhadd8 r10, r4, r6
eor r6, r4, r6 eor r6, r4, r6
uhadd8 r11, r5, r7 uhadd8 r11, r5, r7
@ -144,10 +145,11 @@ function ff_put_pixels8_y2_armv6, export=1
eor r7, r5, r7 eor r7, r5, r7
uadd8 r10, r10, r6 uadd8 r10, r10, r6
and r7, r7, r12 and r7, r7, r12
ldr_pre r6, r1, r2 ldrc_pre ne, r6, r1, r2
uadd8 r11, r11, r7 uadd8 r11, r11, r7
strd_post r8, r9, r0, r2 strd_post r8, r9, r0, r2
ldr r7, [r1, #4] it ne
ldrne r7, [r1, #4]
strd_post r10, r11, r0, r2 strd_post r10, r11, r0, r2
bne 1b bne 1b
@ -192,13 +194,15 @@ function ff_put_pixels8_y2_no_rnd_armv6, export=1
1: 1:
subs r3, r3, #2 subs r3, r3, #2
uhadd8 r8, r4, r6 uhadd8 r8, r4, r6
ldr_pre r4, r1, r2 ldrc_pre ne, r4, r1, r2
uhadd8 r9, r5, r7 uhadd8 r9, r5, r7
ldr r5, [r1, #4] it ne
ldrne r5, [r1, #4]
uhadd8 r12, r4, r6 uhadd8 r12, r4, r6
ldr_pre r6, r1, r2 ldrc_pre ne, r6, r1, r2
uhadd8 r14, r5, r7 uhadd8 r14, r5, r7
ldr r7, [r1, #4] it ne
ldrne r7, [r1, #4]
stm r0, {r8,r9} stm r0, {r8,r9}
add r0, r0, r2 add r0, r0, r2
stm r0, {r12,r14} stm r0, {r12,r14}

@ -216,6 +216,13 @@ T ldr \rt, [\rn]
T add \rn, \rn, \rm T add \rn, \rn, \rm
.endm .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 .macro ldrd_reg rt, rt2, rn, rm
A ldrd \rt, \rt2, [\rn, \rm] A ldrd \rt, \rt2, [\rn, \rm]
T add \rt, \rn, \rm T add \rt, \rn, \rm

Loading…
Cancel
Save