|
|
|
@@ -360,8 +360,10 @@ Optimization options (experts only): |
|
|
|
--disable-neon disable NEON optimizations |
|
|
|
--disable-inline-asm disable use of inline assembly |
|
|
|
--disable-yasm disable use of nasm/yasm assembly |
|
|
|
--disable-mips32r5 disable MIPS32R5 optimizations |
|
|
|
--disable-mipsdspr1 disable MIPS DSP ASE R1 optimizations |
|
|
|
--disable-mipsdspr2 disable MIPS DSP ASE R2 optimizations |
|
|
|
--disable-msa disable MSA optimizations |
|
|
|
--disable-mipsfpu disable floating point MIPS optimizations |
|
|
|
--disable-fast-unaligned consider unaligned accesses slow |
|
|
|
|
|
|
|
@@ -1565,8 +1567,10 @@ ARCH_EXT_LIST_ARM=" |
|
|
|
ARCH_EXT_LIST_MIPS=" |
|
|
|
mipsfpu |
|
|
|
mips32r2 |
|
|
|
mips32r5 |
|
|
|
mipsdspr1 |
|
|
|
mipsdspr2 |
|
|
|
msa |
|
|
|
" |
|
|
|
|
|
|
|
ARCH_EXT_LIST_X86_SIMD=" |
|
|
|
@@ -2009,6 +2013,8 @@ map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM |
|
|
|
mipsfpu_deps="mips" |
|
|
|
mipsdspr1_deps="mips" |
|
|
|
mipsdspr2_deps="mips" |
|
|
|
mips32r5_deps="mips" |
|
|
|
msa_deps="mips" |
|
|
|
|
|
|
|
altivec_deps="ppc" |
|
|
|
ppc4xx_deps="ppc" |
|
|
|
@@ -3842,23 +3848,43 @@ elif enabled mips; then |
|
|
|
|
|
|
|
case $cpu in |
|
|
|
24kc) |
|
|
|
disable mips32r5 |
|
|
|
disable mipsfpu |
|
|
|
disable mipsdspr1 |
|
|
|
disable mipsdspr2 |
|
|
|
disable msa |
|
|
|
;; |
|
|
|
24kf*) |
|
|
|
disable mips32r5 |
|
|
|
disable mipsdspr1 |
|
|
|
disable mipsdspr2 |
|
|
|
disable msa |
|
|
|
;; |
|
|
|
24kec|34kc|1004kc) |
|
|
|
disable mips32r5 |
|
|
|
disable mipsfpu |
|
|
|
disable mipsdspr2 |
|
|
|
disable msa |
|
|
|
;; |
|
|
|
24kef*|34kf*|1004kf*) |
|
|
|
disable mips32r5 |
|
|
|
disable mipsdspr2 |
|
|
|
disable msa |
|
|
|
;; |
|
|
|
74kc) |
|
|
|
disable mips32r5 |
|
|
|
disable mipsfpu |
|
|
|
disable msa |
|
|
|
;; |
|
|
|
p5600) |
|
|
|
disable mipsdspr1 |
|
|
|
disable mipsdspr2 |
|
|
|
|
|
|
|
check_cflags "-mtune=p5600" |
|
|
|
;; |
|
|
|
generic) |
|
|
|
disable mips32r5 |
|
|
|
disable msa |
|
|
|
;; |
|
|
|
esac |
|
|
|
|
|
|
|
@@ -4613,17 +4639,28 @@ elif enabled mips; then |
|
|
|
elif enabled mips64 && enabled mipsfpu; then |
|
|
|
add_cflags "-mips64" |
|
|
|
add_asflags "-mips64" |
|
|
|
elif enabled mipsfpu || enabled mipsdspr1 || enabled mipsdspr2; then |
|
|
|
add_cflags "-mips32r2" |
|
|
|
add_asflags "-mips32r2" |
|
|
|
elif enabled mipsdspr1 || enabled mipsdspr2; then |
|
|
|
add_cflags "-mips32r2 -mfp32" |
|
|
|
add_asflags "-mips32r2 -mfp32" |
|
|
|
elif enabled mips32r5; then |
|
|
|
check_cflags "-mfp64" |
|
|
|
check_ldflags "-mfp64" |
|
|
|
fi |
|
|
|
|
|
|
|
enabled mips32r5 && check_cflags "-mips32r5 -msched-weight -mload-store-pairs -funroll-loops" && |
|
|
|
check_ldflags "-mips32r5" && |
|
|
|
check_inline_asm mips32r5 '"ulw $t0, ($t1)"' |
|
|
|
enabled mipsdspr1 && add_cflags "-mdsp" && add_asflags "-mdsp" && |
|
|
|
check_inline_asm mipsdspr1 '"addu.qb $t0, $t1, $t2"' |
|
|
|
enabled mipsdspr2 && add_cflags "-mdspr2" && add_asflags "-mdspr2" && |
|
|
|
check_inline_asm mipsdspr2 '"absq_s.qb $t0, $t1"' |
|
|
|
enabled mipsfpu && add_cflags "-mhard-float" && add_asflags "-mhard-float" && |
|
|
|
check_inline_asm mipsfpu '"madd.d $f0, $f2, $f4, $f6"' |
|
|
|
enabled msa && check_cflags "-mmsa" && check_ldflags "-mmsa" && |
|
|
|
check_inline_asm msa '"addvi.b $w0, $w1, 1"' |
|
|
|
|
|
|
|
enabled mips32r5 && add_asflags "-mips32r5 -mfp64" |
|
|
|
enabled msa && add_asflags "-mmsa" |
|
|
|
|
|
|
|
elif enabled parisc; then |
|
|
|
|
|
|
|
@@ -5583,8 +5620,10 @@ if enabled arm; then |
|
|
|
fi |
|
|
|
if enabled mips; then |
|
|
|
echo "MIPS FPU enabled ${mipsfpu-no}" |
|
|
|
echo "MIPS32R5 enabled ${mips32r5-no}" |
|
|
|
echo "MIPS DSP R1 enabled ${mipsdspr1-no}" |
|
|
|
echo "MIPS DSP R2 enabled ${mipsdspr2-no}" |
|
|
|
echo "MIPS MSA enabled ${msa-no}" |
|
|
|
fi |
|
|
|
if enabled ppc; then |
|
|
|
echo "AltiVec enabled ${altivec-no}" |
|
|
|
|