mirror of
				https://github.com/nyanmisaka/ffmpeg-rockchip.git
				synced 2025-10-30 20:16:42 +08:00 
			
		
		
		
	swresample/arm: remove unintentional relocation.
Branch to global symbol results in reference to PLT, and when compiling
for THUMB-2 - in a R_ARM_THM_JUMP19 relocation. Some linkers don't
support this relocation (ld.gold), while others can end up truncating
the relocation to fit (ld.bfd).
Convert this branch through PLT into a direct branch that the assembler
can resolve locally.
See https://github.com/android-ndk/ndk/issues/337 for background.
The current workaround is to disable neon during gstreamer build,
which is not optimal and can be reverted after this patch:
41556c4157
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
			
			
This commit is contained in:
		 Rahul Chaudhry
					Rahul Chaudhry
				
			
				
					committed by
					
						 Michael Niedermayer
						Michael Niedermayer
					
				
			
			
				
	
			
			
			 Michael Niedermayer
						Michael Niedermayer
					
				
			
						parent
						
							baf9c0bd99
						
					
				
				
					commit
					b22db4f465
				
			| @@ -22,6 +22,7 @@ | |||||||
| #include "libavutil/arm/asm.S" | #include "libavutil/arm/asm.S" | ||||||
|  |  | ||||||
| function swri_oldapi_conv_flt_to_s16_neon, export=1 | function swri_oldapi_conv_flt_to_s16_neon, export=1 | ||||||
|  | _swri_oldapi_conv_flt_to_s16_neon: | ||||||
|         subs            r2,  r2,  #8 |         subs            r2,  r2,  #8 | ||||||
|         vld1.32         {q0},     [r1,:128]! |         vld1.32         {q0},     [r1,:128]! | ||||||
|         vcvt.s32.f32    q8,  q0,  #31 |         vcvt.s32.f32    q8,  q0,  #31 | ||||||
| @@ -66,6 +67,7 @@ function swri_oldapi_conv_flt_to_s16_neon, export=1 | |||||||
| endfunc | endfunc | ||||||
|  |  | ||||||
| function swri_oldapi_conv_fltp_to_s16_2ch_neon, export=1 | function swri_oldapi_conv_fltp_to_s16_2ch_neon, export=1 | ||||||
|  | _swri_oldapi_conv_fltp_to_s16_2ch_neon: | ||||||
|         ldm             r1,  {r1, r3} |         ldm             r1,  {r1, r3} | ||||||
|         subs            r2,  r2,  #8 |         subs            r2,  r2,  #8 | ||||||
|         vld1.32         {q0},     [r1,:128]! |         vld1.32         {q0},     [r1,:128]! | ||||||
| @@ -133,8 +135,8 @@ function swri_oldapi_conv_fltp_to_s16_nch_neon, export=1 | |||||||
|         cmp             r3,  #2 |         cmp             r3,  #2 | ||||||
|         itt             lt |         itt             lt | ||||||
|         ldrlt           r1,  [r1] |         ldrlt           r1,  [r1] | ||||||
|         blt             X(swri_oldapi_conv_flt_to_s16_neon) |         blt             _swri_oldapi_conv_flt_to_s16_neon | ||||||
|         beq             X(swri_oldapi_conv_fltp_to_s16_2ch_neon) |         beq             _swri_oldapi_conv_fltp_to_s16_2ch_neon | ||||||
|  |  | ||||||
|         push            {r4-r8, lr} |         push            {r4-r8, lr} | ||||||
|         cmp             r3,  #4 |         cmp             r3,  #4 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user