@@ -30,6 +30,7 @@ valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux',
30
30
valid_arch = ('arm' , 'arm64' , 'ia32' , 'mips' , 'mipsel' , 'ppc' , 'ppc64' , 'x32' ,
31
31
'x64' , 'x86' )
32
32
valid_arm_float_abi = ('soft' , 'softfp' , 'hard' )
33
+ valid_arm_fpu = ('vfp' , 'vfpv2' , 'vfpv3' , 'vfpv3-d16' , 'neon' )
33
34
valid_mips_arch = ('loongson' , 'r1' , 'r2' , 'r6' , 'rx' )
34
35
valid_mips_fpu = ('fp32' , 'fp64' , 'fpxx' )
35
36
valid_mips_float_abi = ('soft' , 'hard' )
@@ -219,6 +220,13 @@ parser.add_option('--with-arm-float-abi',
219
220
help = 'specifies which floating-point ABI to use ({0}).' .format (
220
221
', ' .join (valid_arm_float_abi )))
221
222
223
+ parser .add_option ('--with-arm-fpu' ,
224
+ action = 'store' ,
225
+ dest = 'arm_fpu' ,
226
+ choices = valid_arm_fpu ,
227
+ help = 'ARM FPU mode ({0}) [default: %default]' .format (
228
+ ', ' .join (valid_arm_fpu )))
229
+
222
230
parser .add_option ('--with-mips-arch-variant' ,
223
231
action = 'store' ,
224
232
dest = 'mips_arch_variant' ,
@@ -607,20 +615,23 @@ def configure_arm(o):
607
615
else :
608
616
arm_float_abi = 'default'
609
617
618
+ arm_fpu = 'vfpv2'
619
+
610
620
if is_arch_armv7 ():
611
- o [ 'variables' ][ ' arm_fpu' ] = 'vfpv3'
621
+ arm_fpu = 'vfpv3'
612
622
o ['variables' ]['arm_version' ] = '7'
613
623
else :
614
- o ['variables' ]['arm_fpu' ] = 'vfpv2'
615
624
o ['variables' ]['arm_version' ] = '6' if is_arch_armv6 () else 'default'
616
625
617
626
o ['variables' ]['arm_thumb' ] = 0 # -marm
618
627
o ['variables' ]['arm_float_abi' ] = arm_float_abi
619
628
620
629
if options .dest_os == 'android' :
621
- o [ 'variables' ][ ' arm_fpu' ] = 'vfpv3'
630
+ arm_fpu = 'vfpv3'
622
631
o ['variables' ]['arm_version' ] = '7'
623
632
633
+ o ['variables' ]['arm_fpu' ] = options .arm_fpu or arm_fpu
634
+
624
635
625
636
def configure_mips (o ):
626
637
can_use_fpu_instructions = (options .mips_float_abi != 'soft' )
0 commit comments