From 74bc3e133bd59a65dbed70b5fc89549f04a545e2 Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Mon, 13 Aug 2012 22:44:43 +0200 Subject: [PATCH] hardening: eliminate text relocations from amrwb Change-Id: I47235fc4afe6b916da1e999401fb3c8b12c94e62 --- .../libstagefright/codecs/amrwbenc/src/asm/ARMV5E/Filt_6k_7k_opt.s | 6 ++++-- .../libstagefright/codecs/amrwbenc/src/asm/ARMV7/Filt_6k_7k_neon.s | 6 ++++-- .../libstagefright/codecs/amrwbenc/src/asm/ARMV7/pred_lt4_1_neon.s | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/Filt_6k_7k_opt.s b/media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/Filt_6k_7k_opt.s index 856ada8634..8451195020 100644 --- a/media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/Filt_6k_7k_opt.s +++ b/media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/Filt_6k_7k_opt.s @@ -43,7 +43,9 @@ Filt_6k_7k_asm: MOV r2, #30 @ L_FIR - 1 BL voAWB_Copy @ memcpy(x, mem, (L_FIR - 1)<<1) - LDR r10, Lable1 @ get fir_7k address + ADR r3, Lable1 @ get fir_7k address + LDR r10, [r3] + ADD r10, r3 MOV r14, #0 MOV r3, r8 @ change myMemCopy to Copy, due to Copy will change r3 content @@ -178,7 +180,7 @@ Filt_6k_7k_end: LDMFD r13!, {r4 - r12, r15} Lable1: - .word fir_6k_7k + .word fir_6k_7k-Lable1 @ENDFUNC .END diff --git a/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/Filt_6k_7k_neon.s b/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/Filt_6k_7k_neon.s index 14ba8289f4..fc42a03027 100644 --- a/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/Filt_6k_7k_neon.s +++ b/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/Filt_6k_7k_neon.s @@ -49,7 +49,9 @@ Filt_6k_7k_asm: - LDR r10, Lable1 @ get fir_7k address + ADR r3, Lable1 @ get fir_7k address + LDR r10, [r3] + ADD r10, r3 MOV r3, r8 @ change myMemCopy to Copy, due to Copy will change r3 content ADD r6, r13, #60 @ get x[L_FIR - 1] address MOV r7, r3 @ get signal[i] @@ -221,7 +223,7 @@ Filt_6k_7k_end: LDMFD r13!, {r0 - r12, r15} Lable1: - .word fir_6k_7k + .word fir_6k_7k-Lable1 @ENDFUNC .END diff --git a/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/pred_lt4_1_neon.s b/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/pred_lt4_1_neon.s index 6b782cb40b..8d2aaf214c 100644 --- a/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/pred_lt4_1_neon.s +++ b/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/pred_lt4_1_neon.s @@ -40,7 +40,9 @@ pred_lt4_asm: ADDLT r2, r2, #4 @ frac += UP_SAMP SUBLT r4, r4, #2 @ x-- - LDR r11, Lable1 + ADR r8, Lable1 + LDR r11, [r8] + ADD r11, r8 RSB r2, r2, #3 @ k = UP_SAMP - 1 - frac MOV r8, #0 @ j = 0 ADD r11, r11, r2, LSL #6 @ get inter4_2[k][] @@ -94,7 +96,7 @@ pred_lt4_end: LDMFD r13!, {r4 - r12, r15} Lable1: - .word inter4_2 + .word inter4_2-Lable1 @ENDFUNC .END -- 2.11.0