summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorNick Kralevich <nnk@google.com>2012-08-20 12:53:43 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-08-20 12:53:43 -0700
commitadd7c4d329586119fb8b5501b049905004400233 (patch)
tree61952e496a2640c1744ea2da02a4d0306fecfb9c /media
parentaf5f9f05937521acb4855848d77bed1d4ed7db0a (diff)
parent46b7eeb8be7449515082ecb1a61700affb44115f (diff)
downloadframeworks_av-add7c4d329586119fb8b5501b049905004400233.zip
frameworks_av-add7c4d329586119fb8b5501b049905004400233.tar.gz
frameworks_av-add7c4d329586119fb8b5501b049905004400233.tar.bz2
am 46b7eeb8: Merge "hardening: eliminate text relocations from h264"
* commit '46b7eeb8be7449515082ecb1a61700affb44115f': hardening: eliminate text relocations from h264
Diffstat (limited to 'media')
-rw-r--r--media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DecodeCoeffsToPair_s.S35
-rw-r--r--media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_Interpolate_Chroma_s.S23
-rw-r--r--media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_DequantTransformResidualFromPairAndAdd_s.S16
-rw-r--r--media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntraChroma_8x8_s.S16
-rw-r--r--media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntra_16x16_s.S15
-rw-r--r--media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntra_4x4_s.S21
-rw-r--r--media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantChromaDCFromPair_s.S11
-rw-r--r--media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantLumaDCFromPair_s.S11
8 files changed, 94 insertions, 54 deletions
diff --git a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DecodeCoeffsToPair_s.S b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DecodeCoeffsToPair_s.S
index e68bd8e..073dbba 100644
--- a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DecodeCoeffsToPair_s.S
+++ b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DecodeCoeffsToPair_s.S
@@ -17,7 +17,8 @@ armVCM4P10_DecodeCoeffsToPair:
SUB sp,sp,#0x40
LDR r10,[r0,#0]
LDR r12,[r1,#0]
- LDR r6, =armVCM4P10_CAVLCCoeffTokenTables
+ LDR r6, .LarmVCM4P10_CAVLCCoeffTokenTables
+P0: ADD r6, pc
LDR r4,[sp,#0x68]
LDRB r9,[r10,#2]
LDRB r8,[r10,#1]
@@ -131,7 +132,8 @@ L0x184:
LSRS r8,r7,#1
RSBCS r8,r8,#0
STRH r8,[r2],#2
- LDR r9, =armVCM4P10_SuffixToLevel
+ LDR r9, .LarmVCM4P10_SuffixToLevel
+P1: ADD r9, pc
LDRSB r8,[r9,r4]
TEQ r4,#0
MOVEQ r4,#1
@@ -148,8 +150,9 @@ L0x1b8:
SUB lr,lr,#1
BEQ L0x2b0
TEQ r8,#4
- LDREQ r6, =(armVCM4P10_CAVLCTotalZeros2x2Tables - 4)
- LDRNE r6, =(armVCM4P10_CAVLCTotalZeroTables - 4)
+ LDREQ r6, .LarmVCM4P10_CAVLCTotalZeros2x2Tables
+ LDRNE r6, .LarmVCM4P10_CAVLCTotalZeroTables
+P2: ADD r6, pc
LDR r6,[r6,r5,LSL #2]
LSLS r8,r11,r12
MOVS r7,#0x1e
@@ -175,7 +178,8 @@ L0x224:
BIC r7,r8,#0xf000
CMP r7,#0x10
BGE L0x33c
- LDR r3, =(armVCM4P10_CAVLCRunBeforeTables - 4)
+ LDR r3, .LarmVCM4P10_CAVLCRunBeforeTables
+P3: ADD r3, pc
ADD r4,sp,#0x2c
MOVS r1,r7
ADD lr,lr,r1
@@ -228,8 +232,9 @@ L0x2bc:
LDR r3,[sp,#8]
LDR r0,[r3,#0]
TEQ r8,#4
- LDREQ r6, =armVCM4P10_ZigZag_2x2
- LDRNE r6, =armVCM4P10_ZigZag_4x4
+ LDREQ r6, .LarmVCM4P10_ZigZag_2x2
+ LDRNE r6, .LarmVCM4P10_ZigZag_4x4
+P4: ADD r6, pc
L0x2ec:
LDRB r9,[r4],#1
LDRB r8,[r6,lr]
@@ -268,5 +273,19 @@ L0x35c:
POP {r4-r12,pc}
.endfunc
- .end
+.LarmVCM4P10_CAVLCCoeffTokenTables:
+ .word armVCM4P10_CAVLCCoeffTokenTables-(P0+8)
+.LarmVCM4P10_SuffixToLevel:
+ .word armVCM4P10_SuffixToLevel-(P1+8)
+.LarmVCM4P10_CAVLCTotalZeros2x2Tables:
+ .word (armVCM4P10_CAVLCTotalZeros2x2Tables - 4)-(P2+8)
+.LarmVCM4P10_CAVLCTotalZeroTables:
+ .word (armVCM4P10_CAVLCTotalZeroTables - 4)-(P2+8)
+.LarmVCM4P10_CAVLCRunBeforeTables:
+ .word (armVCM4P10_CAVLCRunBeforeTables - 4)-(P3+8)
+.LarmVCM4P10_ZigZag_2x2:
+ .word armVCM4P10_ZigZag_2x2-(P4+8)
+.LarmVCM4P10_ZigZag_4x4:
+ .word armVCM4P10_ZigZag_4x4-(P4+8)
+ .end
diff --git a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_Interpolate_Chroma_s.S b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_Interpolate_Chroma_s.S
index 66520da..8599cab 100644
--- a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_Interpolate_Chroma_s.S
+++ b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_Interpolate_Chroma_s.S
@@ -9,20 +9,18 @@
.arm
.fpu neon
- .section .rodata
+ .text
.align 4
armVCM4P10_WidthBranchTableMVIsNotZero:
- .word WidthIs2MVIsNotZero, WidthIs2MVIsNotZero
- .word WidthIs4MVIsNotZero, WidthIs4MVIsNotZero
- .word WidthIs8MVIsNotZero
+ .word WidthIs2MVIsNotZero-(P0+8), WidthIs2MVIsNotZero-(P0+8)
+ .word WidthIs4MVIsNotZero-(P0+8), WidthIs4MVIsNotZero-(P0+8)
+ .word WidthIs8MVIsNotZero-(P0+8)
armVCM4P10_WidthBranchTableMVIsZero:
- .word WidthIs2MVIsZero, WidthIs2MVIsZero
- .word WidthIs4MVIsZero, WidthIs4MVIsZero
- .word WidthIs8MVIsZero
-
- .text
+ .word WidthIs2MVIsZero-(P0+8), WidthIs2MVIsZero-(P0+8)
+ .word WidthIs4MVIsZero-(P0+8), WidthIs4MVIsZero-(P0+8)
+ .word WidthIs8MVIsZero-(P0+8)
.global armVCM4P10_Interpolate_Chroma
.func armVCM4P10_Interpolate_Chroma
@@ -35,9 +33,9 @@ armVCM4P10_Interpolate_Chroma:
RSB r9,r7,#8
CMN r6,r7
MOV r10,#1
- LDREQ r11, =armVCM4P10_WidthBranchTableMVIsZero
+ ADREQ r11, armVCM4P10_WidthBranchTableMVIsZero
SUB lr,r1,r10
- LDRNE r11, =armVCM4P10_WidthBranchTableMVIsNotZero
+ ADRNE r11, armVCM4P10_WidthBranchTableMVIsNotZero
VLD1.8 {d0},[r0],r10
SMULBB r12,r8,r9
SMULBB r9,r6,r9
@@ -48,7 +46,8 @@ armVCM4P10_Interpolate_Chroma:
VDUP.8 d13,r9
VDUP.8 d14,r8
VDUP.8 d15,r6
- LDR pc,[r11,r4,LSL #1]
+ LDR r11,[r11, r4, lsl #1]
+P0: ADD pc,r11
WidthIs8MVIsNotZero:
VLD1.8 {d2},[r0],r10
diff --git a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_DequantTransformResidualFromPairAndAdd_s.S b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_DequantTransformResidualFromPairAndAdd_s.S
index be21ee7..bc0f7fa 100644
--- a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_DequantTransformResidualFromPairAndAdd_s.S
+++ b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_DequantTransformResidualFromPairAndAdd_s.S
@@ -26,9 +26,12 @@ omxVCM4P10_DequantTransformResidualFromPairAndAdd:
MOV r1,r4
BL armVCM4P10_UnpackBlock4x4 ;//
LDR r1,[sp,#0x60]
- LDR r11, =armVCM4P10_QPModuloTable
- LDR r10, =armVCM4P10_QPDivTable
- LDR r2, =armVCM4P10_VMatrixU16
+ LDR r11, .LarmVCM4P10_QPModuloTable
+P0: ADD r11, pc
+ LDR r10, .LarmVCM4P10_QPDivTable
+P1: ADD r10, pc
+ LDR r2, .LarmVCM4P10_VMatrixU16
+P2: ADD r2, pc
LDRSB r12,[r11,r1]
LDRSB lr,[r10,r1]
LDR r10, =0x3020504
@@ -115,5 +118,12 @@ L0x130:
POP {r4-r12,pc}
.endfunc
+.LarmVCM4P10_QPModuloTable:
+ .word armVCM4P10_QPModuloTable-(P0+8)
+.LarmVCM4P10_QPDivTable:
+ .word armVCM4P10_QPDivTable-(P1+8)
+.LarmVCM4P10_VMatrixU16:
+ .word armVCM4P10_VMatrixU16-(P2+8)
+
.end
diff --git a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntraChroma_8x8_s.S b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntraChroma_8x8_s.S
index 0d49e4b..a896a3a 100644
--- a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntraChroma_8x8_s.S
+++ b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntraChroma_8x8_s.S
@@ -8,31 +8,31 @@
.arm
.fpu neon
- .section .rodata
+ .text
.align 4
armVCM4P10_pIndexTable8x8:
- .word OMX_VC_CHROMA_DC, OMX_VC_CHROMA_HOR
- .word OMX_VC_CHROMA_VERT, OMX_VC_CHROMA_PLANE
+ .word OMX_VC_CHROMA_DC-(P0+8), OMX_VC_CHROMA_HOR-(P0+8)
+ .word OMX_VC_CHROMA_VERT-(P0+8), OMX_VC_CHROMA_PLANE-(P0+8)
armVCM4P10_MultiplierTableChroma8x8:
.hword 3, 2, 1,4
.hword -3,-2,-1,0
.hword 1, 2, 3,4
-
- .text
.global omxVCM4P10_PredictIntraChroma_8x8
.func omxVCM4P10_PredictIntraChroma_8x8
omxVCM4P10_PredictIntraChroma_8x8:
PUSH {r4-r10,lr}
VPUSH {d8-d15}
- LDR r8, =armVCM4P10_pIndexTable8x8
+ ADR r8, armVCM4P10_pIndexTable8x8
LDR r6,[sp,#0x68]
LDR r4,[sp,#0x60]
LDR r5,[sp,#0x64]
LDR r7,[sp,#0x6c]
- LDR pc,[r8,r6,LSL #2]
+ LDR r8,[r8,r6,LSL #2]
+P0: ADD pc,r8
+
OMX_VC_CHROMA_DC:
TST r7,#2
BEQ L0xe8
@@ -151,7 +151,7 @@ OMX_VC_CHROMA_PLANE:
VSUBL.U8 q7,d3,d2
VSHR.U64 d3,d3,#8
VSUBL.U8 q6,d3,d1
- LDR r2, =armVCM4P10_MultiplierTableChroma8x8
+ ADR r2, armVCM4P10_MultiplierTableChroma8x8
VSHL.I64 d4,d4,#16
VEXT.8 d9,d4,d6,#2
VLD1.16 {d10},[r2]!
diff --git a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntra_16x16_s.S b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntra_16x16_s.S
index 53268f6..3944f53 100644
--- a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntra_16x16_s.S
+++ b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntra_16x16_s.S
@@ -9,7 +9,7 @@
.arm
.fpu neon
- .section .rodata
+ .text
.align 4
;//-------------------------------------------------------
;// This table for implementing switch case of C in asm by
@@ -17,9 +17,8 @@
;//-------------------------------------------------------
armVCM4P10_pIndexTable16x16:
- .word OMX_VC_16X16_VERT, OMX_VC_16X16_HOR
- .word OMX_VC_16X16_DC, OMX_VC_16X16_PLANE
-
+ .word OMX_VC_16X16_VERT-(P0+8), OMX_VC_16X16_HOR-(P0+8)
+ .word OMX_VC_16X16_DC-(P0+8), OMX_VC_16X16_PLANE-(P0+8)
armVCM4P10_MultiplierTable16x16:
@@ -27,20 +26,20 @@ armVCM4P10_MultiplierTable16x16:
.hword 0, 1, 2, 3, 4, 5, 6, 7
.hword 8, 9, 10, 11, 12, 13, 14, 15
- .text
.global omxVCM4P10_PredictIntra_16x16
.func omxVCM4P10_PredictIntra_16x16
omxVCM4P10_PredictIntra_16x16:
PUSH {r4-r12,lr}
VPUSH {d8-d15}
- LDR r9, =armVCM4P10_pIndexTable16x16
+ ADR r9, armVCM4P10_pIndexTable16x16
LDR r6,[sp,#0x70]
LDR r4,[sp,#0x68]
LDR r5,[sp,#0x6c]
LDR r7,[sp,#0x74]
MOV r12,#0x10
- LDR pc,[r9,r6,LSL #2]
+ LDR r9,[r9,r6,LSL #2]
+P0: ADD pc,r9
OMX_VC_16X16_VERT:
VLD1.8 {d0,d1},[r1]
ADD r8,r3,r5
@@ -162,7 +161,7 @@ L0x198:
VPOP {d8-d15}
POP {r4-r12,pc}
OMX_VC_16X16_PLANE:
- LDR r9, =armVCM4P10_MultiplierTable16x16
+ ADR r9, armVCM4P10_MultiplierTable16x16
VLD1.8 {d0,d1},[r1]
VLD1.8 {d4[0]},[r2]
ADD r8,r0,r4
diff --git a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntra_4x4_s.S b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntra_4x4_s.S
index aa6d7ef..6646b7f 100644
--- a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntra_4x4_s.S
+++ b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_PredictIntra_4x4_s.S
@@ -9,27 +9,27 @@
.arm
.fpu neon
- .section .rodata
+ .text
.align 4
armVCM4P10_pSwitchTable4x4:
- .word OMX_VC_4x4_VERT, OMX_VC_4x4_HOR
- .word OMX_VC_4x4_DC, OMX_VC_4x4_DIAG_DL
- .word OMX_VC_4x4_DIAG_DR, OMX_VC_4x4_VR
- .word OMX_VC_4x4_HD, OMX_VC_4x4_VL
- .word OMX_VC_4x4_HU
-
- .text
+ .word OMX_VC_4x4_VERT-(P0+8), OMX_VC_4x4_HOR-(P0+8)
+ .word OMX_VC_4x4_DC-(P0+8), OMX_VC_4x4_DIAG_DL-(P0+8)
+ .word OMX_VC_4x4_DIAG_DR-(P0+8), OMX_VC_4x4_VR-(P0+8)
+ .word OMX_VC_4x4_HD-(P0+8), OMX_VC_4x4_VL-(P0+8)
+ .word OMX_VC_4x4_HU-(P0+8)
.global omxVCM4P10_PredictIntra_4x4
.func omxVCM4P10_PredictIntra_4x4
omxVCM4P10_PredictIntra_4x4:
PUSH {r4-r12,lr}
VPUSH {d8-d12}
- LDR r8, =armVCM4P10_pSwitchTable4x4
+ ADR r8, armVCM4P10_pSwitchTable4x4
LDRD r6,r7,[sp,#0x58]
LDRD r4,r5,[sp,#0x50]
- LDR pc,[r8,r6,LSL #2]
+ LDR r8,[r8,r6,LSL #2]
+P0: ADD pc, r8
+
OMX_VC_4x4_HOR:
ADD r9,r0,r4
ADD r10,r4,r4
@@ -258,4 +258,3 @@ L0x348:
.endfunc
.end
-
diff --git a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantChromaDCFromPair_s.S b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantChromaDCFromPair_s.S
index 28a89cb..7ba3bd6 100644
--- a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantChromaDCFromPair_s.S
+++ b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantChromaDCFromPair_s.S
@@ -32,8 +32,10 @@ unpackLoop:
beq unpackLoop
ldmia r1, {r3, r4}
str r9, [r0, #0]
- ldr r5, =armVCM4P10_QPDivTable
- ldr r6, =armVCM4P10_VMatrixQPModTable
+ ldr r5, .LarmVCM4P10_QPDivTable
+P0: add r5, pc
+ ldr r6, .LarmVCM4P10_VMatrixQPModTable
+P1: add r6, pc
saddsubx r3, r3, r3
saddsubx r4, r4, r4
ldrsb r9, [r5, r2]
@@ -51,4 +53,9 @@ unpackLoop:
pop {r4-r10, pc}
.endfunc
+.LarmVCM4P10_QPDivTable:
+ .word armVCM4P10_QPDivTable-(P0+8)
+.LarmVCM4P10_VMatrixQPModTable:
+ .word armVCM4P10_VMatrixQPModTable-(P1+8)
+
.end
diff --git a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantLumaDCFromPair_s.S b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantLumaDCFromPair_s.S
index a3a0715..640f096 100644
--- a/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantLumaDCFromPair_s.S
+++ b/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/omxVCM4P10_TransformDequantLumaDCFromPair_s.S
@@ -16,8 +16,10 @@ armVCM4P10_InvTransformDequantLumaDC4x4:
PUSH {r4-r6,lr}
VPUSH {d8-d13}
VLD4.16 {d0,d1,d2,d3},[r0]
- LDR r2, =armVCM4P10_QPDivTable
- LDR r3, =armVCM4P10_VMatrixQPModTable
+ LDR r2, .LarmVCM4P10_QPDivTable
+P0: ADD r2, pc
+ LDR r3, .LarmVCM4P10_VMatrixQPModTable
+P1: ADD r3, pc
VADD.I16 d4,d0,d1
VADD.I16 d5,d2,d3
VSUB.I16 d6,d0,d1
@@ -58,6 +60,11 @@ armVCM4P10_InvTransformDequantLumaDC4x4:
POP {r4-r6,pc}
.endfunc
+.LarmVCM4P10_QPDivTable:
+ .word armVCM4P10_QPDivTable-(P0+8)
+.LarmVCM4P10_VMatrixQPModTable:
+ .word armVCM4P10_VMatrixQPModTable-(P1+8)
+
.global omxVCM4P10_TransformDequantLumaDCFromPair
.func omxVCM4P10_TransformDequantLumaDCFromPair
omxVCM4P10_TransformDequantLumaDCFromPair: