1
mirror of https://git.videolan.org/git/ffmpeg.git synced 2024-09-29 00:10:04 +02:00

Merge remote-tracking branch 'qatar/master'

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

Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2014-03-05 21:34:08 +01:00
commit a74bab7079
2 changed files with 19 additions and 8 deletions

View File

@ -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}

View File

@ -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