diff options
author | Nick Kralevich <nnk@google.com> | 2012-08-14 09:02:22 -0700 |
---|---|---|
committer | android code review <noreply-gerritcodereview@google.com> | 2012-08-14 09:02:23 -0700 |
commit | c3e9d7eadbad6f5554b52ed9d39b146cab13904b (patch) | |
tree | 7627186443851aa8837d02e9868e0fd2f2dc3d15 /vp8/common | |
parent | d45f2f42e089fcbab69c5200119c5c5f2985c2ed (diff) | |
parent | d35fe0269d77984b383b6bdc051f26b72da15277 (diff) | |
download | libvpx-c3e9d7eadbad6f5554b52ed9d39b146cab13904b.tar.gz |
Merge "hardening: eliminate text relocations"
Diffstat (limited to 'vp8/common')
-rw-r--r-- | vp8/common/arm/armv6/sixtappredict8x4_v6.asm | 51 | ||||
-rw-r--r-- | vp8/common/arm/neon/bilinearpredict16x16_neon.asm | 4 | ||||
-rw-r--r-- | vp8/common/arm/neon/bilinearpredict4x4_neon.asm | 4 | ||||
-rw-r--r-- | vp8/common/arm/neon/bilinearpredict8x4_neon.asm | 4 | ||||
-rw-r--r-- | vp8/common/arm/neon/bilinearpredict8x8_neon.asm | 4 | ||||
-rw-r--r-- | vp8/common/arm/neon/loopfilter_neon.asm | 4 | ||||
-rw-r--r-- | vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.asm | 4 | ||||
-rw-r--r-- | vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.asm | 4 | ||||
-rw-r--r-- | vp8/common/arm/neon/mbloopfilter_neon.asm | 4 | ||||
-rw-r--r-- | vp8/common/arm/neon/shortidct4x4llm_neon.asm | 4 | ||||
-rw-r--r-- | vp8/common/arm/neon/sixtappredict16x16_neon.asm | 28 | ||||
-rw-r--r-- | vp8/common/arm/neon/sixtappredict4x4_neon.asm | 28 | ||||
-rw-r--r-- | vp8/common/arm/neon/sixtappredict8x4_neon.asm | 28 | ||||
-rw-r--r-- | vp8/common/arm/neon/sixtappredict8x8_neon.asm | 4 |
14 files changed, 74 insertions, 101 deletions
diff --git a/vp8/common/arm/armv6/sixtappredict8x4_v6.asm b/vp8/common/arm/armv6/sixtappredict8x4_v6.asm index 029e02aa0..17d70c3d9 100644 --- a/vp8/common/arm/armv6/sixtappredict8x4_v6.asm +++ b/vp8/common/arm/armv6/sixtappredict8x4_v6.asm @@ -12,6 +12,29 @@ EXPORT |vp8_sixtap_predict8x4_armv6| AREA |.text|, CODE, READONLY ; name this block of code + +;----------------- +;One word each is reserved. Label filter_coeff can be used to access the data. +;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ... +filter8_coeff + DCD 0x00000000, 0x00000080, 0x00000000, 0x00000000 + DCD 0xfffa0000, 0x000c007b, 0x0000ffff, 0x00000000 + DCD 0xfff50002, 0x0024006c, 0x0001fff8, 0x00000000 + DCD 0xfff70000, 0x0032005d, 0x0000fffa, 0x00000000 + DCD 0xfff00003, 0x004d004d, 0x0003fff0, 0x00000000 + DCD 0xfffa0000, 0x005d0032, 0x0000fff7, 0x00000000 + DCD 0xfff80001, 0x006c0024, 0x0002fff5, 0x00000000 + DCD 0xffff0000, 0x007b000c, 0x0000fffa, 0x00000000 + + ;DCD 0, 0, 128, 0, 0, 0 + ;DCD 0, -6, 123, 12, -1, 0 + ;DCD 2, -11, 108, 36, -8, 1 + ;DCD 0, -9, 93, 50, -6, 0 + ;DCD 3, -16, 77, 77, -16, 3 + ;DCD 0, -6, 50, 93, -9, 0 + ;DCD 1, -8, 36, 108, -11, 2 + ;DCD 0, -1, 12, 123, -6, 0 + ;------------------------------------- ; r0 unsigned char *src_ptr, ; r1 int src_pixels_per_line, @@ -32,7 +55,7 @@ beq skip_firstpass_filter ;first-pass filter - ldr r12, _filter8_coeff_ + adr r12, filter8_coeff sub r0, r0, r1, lsl #1 add r2, r12, r2, lsl #4 ;calculate filter location @@ -121,7 +144,7 @@ secondpass_filter cmp r3, #0 beq skip_secondpass_filter - ldr r12, _filter8_coeff_ + adr r12, filter8_coeff add lr, r12, r3, lsl #4 ;calculate filter location mov r2, #0x00080000 @@ -242,28 +265,4 @@ skip_secondpass_hloop ENDP -;----------------- -;One word each is reserved. Label filter_coeff can be used to access the data. -;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ... -_filter8_coeff_ - DCD filter8_coeff -filter8_coeff - DCD 0x00000000, 0x00000080, 0x00000000, 0x00000000 - DCD 0xfffa0000, 0x000c007b, 0x0000ffff, 0x00000000 - DCD 0xfff50002, 0x0024006c, 0x0001fff8, 0x00000000 - DCD 0xfff70000, 0x0032005d, 0x0000fffa, 0x00000000 - DCD 0xfff00003, 0x004d004d, 0x0003fff0, 0x00000000 - DCD 0xfffa0000, 0x005d0032, 0x0000fff7, 0x00000000 - DCD 0xfff80001, 0x006c0024, 0x0002fff5, 0x00000000 - DCD 0xffff0000, 0x007b000c, 0x0000fffa, 0x00000000 - - ;DCD 0, 0, 128, 0, 0, 0 - ;DCD 0, -6, 123, 12, -1, 0 - ;DCD 2, -11, 108, 36, -8, 1 - ;DCD 0, -9, 93, 50, -6, 0 - ;DCD 3, -16, 77, 77, -16, 3 - ;DCD 0, -6, 50, 93, -9, 0 - ;DCD 1, -8, 36, 108, -11, 2 - ;DCD 0, -1, 12, 123, -6, 0 - END diff --git a/vp8/common/arm/neon/bilinearpredict16x16_neon.asm b/vp8/common/arm/neon/bilinearpredict16x16_neon.asm index 79e1a6935..e392786d4 100644 --- a/vp8/common/arm/neon/bilinearpredict16x16_neon.asm +++ b/vp8/common/arm/neon/bilinearpredict16x16_neon.asm @@ -25,7 +25,7 @@ |vp8_bilinear_predict16x16_neon| PROC push {r4-r5, lr} - ldr r12, _bifilter16_coeff_ + adr r12, bifilter16_coeff ldr r4, [sp, #12] ;load parameters from stack ldr r5, [sp, #16] ;load parameters from stack @@ -351,8 +351,6 @@ filt_blk2d_spo16x16_loop_neon ;----------------- -_bifilter16_coeff_ - DCD bifilter16_coeff bifilter16_coeff DCD 128, 0, 112, 16, 96, 32, 80, 48, 64, 64, 48, 80, 32, 96, 16, 112 diff --git a/vp8/common/arm/neon/bilinearpredict4x4_neon.asm b/vp8/common/arm/neon/bilinearpredict4x4_neon.asm index 10cd1b8bd..0ac62436f 100644 --- a/vp8/common/arm/neon/bilinearpredict4x4_neon.asm +++ b/vp8/common/arm/neon/bilinearpredict4x4_neon.asm @@ -25,7 +25,7 @@ |vp8_bilinear_predict4x4_neon| PROC push {r4, lr} - ldr r12, _bifilter4_coeff_ + adr r12, bifilter4_coeff ldr r4, [sp, #8] ;load parameters from stack ldr lr, [sp, #12] ;load parameters from stack @@ -124,8 +124,6 @@ skip_secondpass_filter ;----------------- -_bifilter4_coeff_ - DCD bifilter4_coeff bifilter4_coeff DCD 128, 0, 112, 16, 96, 32, 80, 48, 64, 64, 48, 80, 32, 96, 16, 112 diff --git a/vp8/common/arm/neon/bilinearpredict8x4_neon.asm b/vp8/common/arm/neon/bilinearpredict8x4_neon.asm index bf37bb0d6..41f5c45ff 100644 --- a/vp8/common/arm/neon/bilinearpredict8x4_neon.asm +++ b/vp8/common/arm/neon/bilinearpredict8x4_neon.asm @@ -25,7 +25,7 @@ |vp8_bilinear_predict8x4_neon| PROC push {r4, lr} - ldr r12, _bifilter8x4_coeff_ + adr r12, bifilter8x4_coeff ldr r4, [sp, #8] ;load parameters from stack ldr lr, [sp, #12] ;load parameters from stack @@ -129,8 +129,6 @@ skip_secondpass_filter ;----------------- -_bifilter8x4_coeff_ - DCD bifilter8x4_coeff bifilter8x4_coeff DCD 128, 0, 112, 16, 96, 32, 80, 48, 64, 64, 48, 80, 32, 96, 16, 112 diff --git a/vp8/common/arm/neon/bilinearpredict8x8_neon.asm b/vp8/common/arm/neon/bilinearpredict8x8_neon.asm index 9b29df6c3..c4711bc4d 100644 --- a/vp8/common/arm/neon/bilinearpredict8x8_neon.asm +++ b/vp8/common/arm/neon/bilinearpredict8x8_neon.asm @@ -25,7 +25,7 @@ |vp8_bilinear_predict8x8_neon| PROC push {r4, lr} - ldr r12, _bifilter8_coeff_ + adr r12, bifilter8_coeff ldr r4, [sp, #8] ;load parameters from stack ldr lr, [sp, #12] ;load parameters from stack @@ -177,8 +177,6 @@ skip_secondpass_filter ;----------------- -_bifilter8_coeff_ - DCD bifilter8_coeff bifilter8_coeff DCD 128, 0, 112, 16, 96, 32, 80, 48, 64, 64, 48, 80, 32, 96, 16, 112 diff --git a/vp8/common/arm/neon/loopfilter_neon.asm b/vp8/common/arm/neon/loopfilter_neon.asm index d3a79f640..3378013e3 100644 --- a/vp8/common/arm/neon/loopfilter_neon.asm +++ b/vp8/common/arm/neon/loopfilter_neon.asm @@ -308,7 +308,7 @@ ; q9 q2 ; q10 q3 |vp8_loop_filter_neon| PROC - ldr r12, _lf_coeff_ + adr r12, lf_coeff ; vp8_filter_mask vabd.u8 q11, q3, q4 ; abs(p3 - p2) @@ -399,8 +399,6 @@ ;----------------- -_lf_coeff_ - DCD lf_coeff lf_coeff DCD 0x80808080, 0x80808080, 0x80808080, 0x80808080 DCD 0x03030303, 0x03030303, 0x03030303, 0x03030303 diff --git a/vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.asm b/vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.asm index 5fe7e7e6d..cd3710d1c 100644 --- a/vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.asm +++ b/vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.asm @@ -28,7 +28,7 @@ |vp8_loop_filter_simple_horizontal_edge_neon| PROC sub r0, r0, r1, lsl #1 ; move src pointer down by 2 lines - ldr r12, _lfhy_coeff_ + adr r12, lfhy_coeff vld1.u8 {q5}, [r0], r1 ; p1 vld1.s8 {d2[], d3[]}, [r2] ; flimit vld1.s8 {d26[], d27[]}, [r3] ; limit -> q13 @@ -105,8 +105,6 @@ ;----------------- -_lfhy_coeff_ - DCD lfhy_coeff lfhy_coeff DCD 0x80808080, 0x80808080, 0x80808080, 0x80808080 DCD 0x03030303, 0x03030303, 0x03030303, 0x03030303 diff --git a/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.asm b/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.asm index c30378b9c..ae5e093a5 100644 --- a/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.asm +++ b/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.asm @@ -32,7 +32,7 @@ vld1.s8 {d2[], d3[]}, [r2] ; flimit vld1.s8 {d26[], d27[]}, [r3] ; limit -> q13 vld4.8 {d6[1], d7[1], d8[1], d9[1]}, [r0], r1 - ldr r12, _vlfy_coeff_ + adr r12, vlfy_coeff vld4.8 {d6[2], d7[2], d8[2], d9[2]}, [r0], r1 vld4.8 {d6[3], d7[3], d8[3], d9[3]}, [r0], r1 vld4.8 {d6[4], d7[4], d8[4], d9[4]}, [r0], r1 @@ -146,8 +146,6 @@ ;----------------- -_vlfy_coeff_ - DCD vlfy_coeff vlfy_coeff DCD 0x80808080, 0x80808080, 0x80808080, 0x80808080 DCD 0x03030303, 0x03030303, 0x03030303, 0x03030303 diff --git a/vp8/common/arm/neon/mbloopfilter_neon.asm b/vp8/common/arm/neon/mbloopfilter_neon.asm index 981adffd1..c62830e44 100644 --- a/vp8/common/arm/neon/mbloopfilter_neon.asm +++ b/vp8/common/arm/neon/mbloopfilter_neon.asm @@ -372,7 +372,7 @@ ; q10 q3 |vp8_mbloop_filter_neon| PROC - ldr r12, _mblf_coeff_ + adr r12, mblf_coeff ; vp8_filter_mask vabd.u8 q11, q3, q4 ; abs(p3 - p2) @@ -507,8 +507,6 @@ ;----------------- -_mblf_coeff_ - DCD mblf_coeff mblf_coeff DCD 0x80808080, 0x80808080, 0x80808080, 0x80808080 DCD 0x03030303, 0x03030303, 0x03030303, 0x03030303 diff --git a/vp8/common/arm/neon/shortidct4x4llm_neon.asm b/vp8/common/arm/neon/shortidct4x4llm_neon.asm index 16c4d2d24..b74c31521 100644 --- a/vp8/common/arm/neon/shortidct4x4llm_neon.asm +++ b/vp8/common/arm/neon/shortidct4x4llm_neon.asm @@ -31,7 +31,7 @@ ;result of the multiplication that is needed in IDCT. |vp8_short_idct4x4llm_neon| PROC - ldr r12, _idct_coeff_ + adr r12, idct_coeff vld1.16 {q1, q2}, [r0] vld1.16 {d0}, [r12] @@ -114,8 +114,6 @@ ;----------------- -_idct_coeff_ - DCD idct_coeff idct_coeff DCD 0x4e7b4e7b, 0x8a8c8a8c diff --git a/vp8/common/arm/neon/sixtappredict16x16_neon.asm b/vp8/common/arm/neon/sixtappredict16x16_neon.asm index 3c22fa19b..438999b77 100644 --- a/vp8/common/arm/neon/sixtappredict16x16_neon.asm +++ b/vp8/common/arm/neon/sixtappredict16x16_neon.asm @@ -15,6 +15,18 @@ PRESERVE8 AREA ||.text||, CODE, READONLY, ALIGN=2 + +filter16_coeff + DCD 0, 0, 128, 0, 0, 0, 0, 0 + DCD 0, -6, 123, 12, -1, 0, 0, 0 + DCD 2, -11, 108, 36, -8, 1, 0, 0 + DCD 0, -9, 93, 50, -6, 0, 0, 0 + DCD 3, -16, 77, 77, -16, 3, 0, 0 + DCD 0, -6, 50, 93, -9, 0, 0, 0 + DCD 1, -8, 36, 108, -11, 2, 0, 0 + DCD 0, -1, 12, 123, -6, 0, 0, 0 + +;----------------- ; r0 unsigned char *src_ptr, ; r1 int src_pixels_per_line, ; r2 int xoffset, @@ -33,7 +45,7 @@ |vp8_sixtap_predict16x16_neon| PROC push {r4-r5, lr} - ldr r12, _filter16_coeff_ + adr r12, filter16_coeff ldr r4, [sp, #12] ;load parameters from stack ldr r5, [sp, #16] ;load parameters from stack @@ -475,18 +487,4 @@ secondpass_only_inner_loop_neon ENDP -;----------------- - -_filter16_coeff_ - DCD filter16_coeff -filter16_coeff - DCD 0, 0, 128, 0, 0, 0, 0, 0 - DCD 0, -6, 123, 12, -1, 0, 0, 0 - DCD 2, -11, 108, 36, -8, 1, 0, 0 - DCD 0, -9, 93, 50, -6, 0, 0, 0 - DCD 3, -16, 77, 77, -16, 3, 0, 0 - DCD 0, -6, 50, 93, -9, 0, 0, 0 - DCD 1, -8, 36, 108, -11, 2, 0, 0 - DCD 0, -1, 12, 123, -6, 0, 0, 0 - END diff --git a/vp8/common/arm/neon/sixtappredict4x4_neon.asm b/vp8/common/arm/neon/sixtappredict4x4_neon.asm index 2dc3f591f..540987a03 100644 --- a/vp8/common/arm/neon/sixtappredict4x4_neon.asm +++ b/vp8/common/arm/neon/sixtappredict4x4_neon.asm @@ -15,6 +15,18 @@ PRESERVE8 AREA ||.text||, CODE, READONLY, ALIGN=2 + +filter4_coeff + DCD 0, 0, 128, 0, 0, 0, 0, 0 + DCD 0, -6, 123, 12, -1, 0, 0, 0 + DCD 2, -11, 108, 36, -8, 1, 0, 0 + DCD 0, -9, 93, 50, -6, 0, 0, 0 + DCD 3, -16, 77, 77, -16, 3, 0, 0 + DCD 0, -6, 50, 93, -9, 0, 0, 0 + DCD 1, -8, 36, 108, -11, 2, 0, 0 + DCD 0, -1, 12, 123, -6, 0, 0, 0 + +;----------------- ; r0 unsigned char *src_ptr, ; r1 int src_pixels_per_line, ; r2 int xoffset, @@ -25,7 +37,7 @@ |vp8_sixtap_predict_neon| PROC push {r4, lr} - ldr r12, _filter4_coeff_ + adr r12, filter4_coeff ldr r4, [sp, #8] ;load parameters from stack ldr lr, [sp, #12] ;load parameters from stack @@ -406,18 +418,4 @@ secondpass_filter4x4_only ENDP -;----------------- - -_filter4_coeff_ - DCD filter4_coeff -filter4_coeff - DCD 0, 0, 128, 0, 0, 0, 0, 0 - DCD 0, -6, 123, 12, -1, 0, 0, 0 - DCD 2, -11, 108, 36, -8, 1, 0, 0 - DCD 0, -9, 93, 50, -6, 0, 0, 0 - DCD 3, -16, 77, 77, -16, 3, 0, 0 - DCD 0, -6, 50, 93, -9, 0, 0, 0 - DCD 1, -8, 36, 108, -11, 2, 0, 0 - DCD 0, -1, 12, 123, -6, 0, 0, 0 - END diff --git a/vp8/common/arm/neon/sixtappredict8x4_neon.asm b/vp8/common/arm/neon/sixtappredict8x4_neon.asm index 0904f52ca..2b0940033 100644 --- a/vp8/common/arm/neon/sixtappredict8x4_neon.asm +++ b/vp8/common/arm/neon/sixtappredict8x4_neon.asm @@ -15,6 +15,18 @@ PRESERVE8 AREA ||.text||, CODE, READONLY, ALIGN=2 + +filter8_coeff + DCD 0, 0, 128, 0, 0, 0, 0, 0 + DCD 0, -6, 123, 12, -1, 0, 0, 0 + DCD 2, -11, 108, 36, -8, 1, 0, 0 + DCD 0, -9, 93, 50, -6, 0, 0, 0 + DCD 3, -16, 77, 77, -16, 3, 0, 0 + DCD 0, -6, 50, 93, -9, 0, 0, 0 + DCD 1, -8, 36, 108, -11, 2, 0, 0 + DCD 0, -1, 12, 123, -6, 0, 0, 0 + +;----------------- ; r0 unsigned char *src_ptr, ; r1 int src_pixels_per_line, ; r2 int xoffset, @@ -25,7 +37,7 @@ |vp8_sixtap_predict8x4_neon| PROC push {r4-r5, lr} - ldr r12, _filter8_coeff_ + adr r12, filter8_coeff ldr r4, [sp, #12] ;load parameters from stack ldr r5, [sp, #16] ;load parameters from stack @@ -457,18 +469,4 @@ secondpass_filter8x4_only ENDP -;----------------- - -_filter8_coeff_ - DCD filter8_coeff -filter8_coeff - DCD 0, 0, 128, 0, 0, 0, 0, 0 - DCD 0, -6, 123, 12, -1, 0, 0, 0 - DCD 2, -11, 108, 36, -8, 1, 0, 0 - DCD 0, -9, 93, 50, -6, 0, 0, 0 - DCD 3, -16, 77, 77, -16, 3, 0, 0 - DCD 0, -6, 50, 93, -9, 0, 0, 0 - DCD 1, -8, 36, 108, -11, 2, 0, 0 - DCD 0, -1, 12, 123, -6, 0, 0, 0 - END diff --git a/vp8/common/arm/neon/sixtappredict8x8_neon.asm b/vp8/common/arm/neon/sixtappredict8x8_neon.asm index 33af86f8f..bcbf63e29 100644 --- a/vp8/common/arm/neon/sixtappredict8x8_neon.asm +++ b/vp8/common/arm/neon/sixtappredict8x8_neon.asm @@ -25,7 +25,7 @@ |vp8_sixtap_predict8x8_neon| PROC push {r4-r5, lr} - ldr r12, _filter8_coeff_ + adrl r12, filter8_coeff ldr r4, [sp, #12] ;load parameters from stack ldr r5, [sp, #16] ;load parameters from stack @@ -510,8 +510,6 @@ filt_blk2d_spo8x8_loop_neon ;----------------- -_filter8_coeff_ - DCD filter8_coeff filter8_coeff DCD 0, 0, 128, 0, 0, 0, 0, 0 DCD 0, -6, 123, 12, -1, 0, 0, 0 |