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
132132 uhadd8 r9, r5, r7
133133 eor r11, r5, r7
134134 and r10, r10, r12
135− ldr_pre r4, r1, r2
135+ ldrc_pre ne, r4, r1, r2
136136 uadd8 r8, r8, r10
137137 and r11, r11, r12
138138 uadd8 r9, r9, r11
139− ldr r5, [r1, #4]
139+ it ne
140+ ldrne r5, [r1, #4]
140141 uhadd8 r10, r4, r6
141142 eor r6, r4, r6
142143 uhadd8 r11, r5, r7
@@ -144,10 +145,11 @@ function ff_put_pixels8_y2_armv6, export=1 · 1 unmodified line
144145 eor r7, r5, r7
145146 uadd8 r10, r10, r6
146147 and r7, r7, r12
147− ldr_pre r6, r1, r2
148+ ldrc_pre ne, r6, r1, r2
148149 uadd8 r11, r11, r7
149150 strd_post r8, r9, r0, r2
150− ldr r7, [r1, #4]
151+ it ne
152+ ldrne r7, [r1, #4]
151153 strd_post r10, r11, r0, r2
152154 bne 1b
153155
@@ -192,13 +194,15 @@ function ff_put_pixels8_y2_no_rnd_armv6, export=1 · 38 unmodified lines
192194 1:
193195 subs r3, r3, #2
194196 uhadd8 r8, r4, r6
195− ldr_pre r4, r1, r2
197+ ldrc_pre ne, r4, r1, r2
196198 uhadd8 r9, r5, r7
197− ldr r5, [r1, #4]
199+ it ne
200+ ldrne r5, [r1, #4]
198201 uhadd8 r12, r4, r6
199− ldr_pre r6, r1, r2
202+ ldrc_pre ne, r6, r1, r2
200203 uhadd8 r14, r5, r7
201− ldr r7, [r1, #4]
204+ it ne
205+ ldrne r7, [r1, #4]
202206 stm r0, {r8,r9}
203207 add r0, r0, r2
204208 stm r0, {r12,r14}
libavutil/arm/asm.S+7−0
@@ -216,6 +216,13 @@ T ldr \rt, [\rn] · 215 unmodified lines
216216 T add \rn, \rn, \rm
217217 .endm
218218
219+.macro ldrc_pre cc, rt, rn, rm:vararg
220+A ldr\cc \rt, [\rn, \rm]!
221+T itt \cc
222+T add\cc \rn, \rn, \rm
223+T ldr\cc \rt, [\rn]
224+.endm
225+
219226 .macro ldrd_reg rt, rt2, rn, rm
220227 A ldrd \rt, \rt2, [\rn, \rm]
221228 T 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