History

arm: hpeldsp: prevent overreads in armv6 asm

Based on a patch by Russel King <rmk+libav@arm.linux.org.uk>

Janne Grunau committed 12 years ago

Commit cbddee11 parent 3741aa32 files · +19 −8Browse files

Unified · Split

2 files
  1. libavcodec/arm/hpeldsp_armv6.S +12 −8
  2. libavutil/arm/asm.S +7 −0
libavcodec/arm/hpeldsp_armv6.S+12−8
@@ -132,11 +132,12 @@ function ff_put_pixels8_y2_armv6, export=1 · 131 unmodified lines
132 uhadd8 r9, r5, r7132 uhadd8 r9, r5, r7
133 eor r11, r5, r7133 eor r11, r5, r7
134 and r10, r10, r12134 and r10, r10, r12
135 ldr_pre r4, r1, r2135 ldrc_pre ne, r4, r1, r2
136 uadd8 r8, r8, r10136 uadd8 r8, r8, r10
137 and r11, r11, r12137 and r11, r11, r12
138 uadd8 r9, r9, r11138 uadd8 r9, r9, r11
139 ldr r5, [r1, #4]139 it ne
140 ldrne r5, [r1, #4]
140 uhadd8 r10, r4, r6141 uhadd8 r10, r4, r6
141 eor r6, r4, r6142 eor r6, r4, r6
142 uhadd8 r11, r5, r7143 uhadd8 r11, r5, r7
@@ -144,10 +145,11 @@ function ff_put_pixels8_y2_armv6, export=1 · 1 unmodified line
144 eor r7, r5, r7145 eor r7, r5, r7
145 uadd8 r10, r10, r6146 uadd8 r10, r10, r6
146 and r7, r7, r12147 and r7, r7, r12
147 ldr_pre r6, r1, r2148 ldrc_pre ne, r6, r1, r2
148 uadd8 r11, r11, r7149 uadd8 r11, r11, r7
149 strd_post r8, r9, r0, r2150 strd_post r8, r9, r0, r2
150 ldr r7, [r1, #4]151 it ne
152 ldrne r7, [r1, #4]
151 strd_post r10, r11, r0, r2153 strd_post r10, r11, r0, r2
152 bne 1b154 bne 1b
153 155
@@ -192,13 +194,15 @@ function ff_put_pixels8_y2_no_rnd_armv6, export=1 · 38 unmodified lines
1921:1941:
193 subs r3, r3, #2195 subs r3, r3, #2
194 uhadd8 r8, r4, r6196 uhadd8 r8, r4, r6
195 ldr_pre r4, r1, r2197 ldrc_pre ne, r4, r1, r2
196 uhadd8 r9, r5, r7198 uhadd8 r9, r5, r7
197 ldr r5, [r1, #4]199 it ne
200 ldrne r5, [r1, #4]
198 uhadd8 r12, r4, r6201 uhadd8 r12, r4, r6
199 ldr_pre r6, r1, r2202 ldrc_pre ne, r6, r1, r2
200 uhadd8 r14, r5, r7203 uhadd8 r14, r5, r7
201 ldr r7, [r1, #4]204 it ne
205 ldrne r7, [r1, #4]
202 stm r0, {r8,r9}206 stm r0, {r8,r9}
203 add r0, r0, r2207 add r0, r0, r2
204 stm r0, {r12,r14}208 stm r0, {r12,r14}
libavutil/arm/asm.S+7−0
@@ -216,6 +216,13 @@ T ldr \rt, [\rn] · 215 unmodified lines
216T add \rn, \rn, \rm216T add \rn, \rn, \rm
217.endm217.endm
218 218
219.macro ldrc_pre cc, rt, rn, rm:vararg
220A ldr\cc \rt, [\rn, \rm]!
221T itt \cc
222T add\cc \rn, \rn, \rm
223T ldr\cc \rt, [\rn]
224.endm
225
219.macro ldrd_reg rt, rt2, rn, rm226.macro ldrd_reg rt, rt2, rn, rm
220A ldrd \rt, \rt2, [\rn, \rm]227A ldrd \rt, \rt2, [\rn, \rm]
221T add \rt, \rn, \rm228T add \rt, \rn, \rm

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t