- if enabled mips64 && (enabled mipsdsp || enabled mipsdspr2); then
- add_cflags "-mips64r2"
- add_asflags "-mips64r2"
- elif enabled mips64 && enabled mipsfpu && disabled loongson2 && disabled loongson3; then
- add_cflags "-mips64"
- add_asflags "-mips64"
- elif enabled mipsdsp || enabled mipsdspr2; then
- add_cflags "-mips32r2 -mfp32"
- add_asflags "-mips32r2 -mfp32"
+ if enabled mips64; then
+ enabled mips64r6 && check_inline_asm_flags mips64r6 '"dlsa $0, $0, $0, 1"' '-mips64r6'
+ enabled mips64r2 && check_inline_asm_flags mips64r2 '"dext $0, $0, 0, 1"' '-mips64r2'
+ disabled mips64r6 && disabled mips64r2 && check_inline_asm_flags mips64r1 '"daddi $0, $0, 0"' '-mips64'
+ else
+ enabled mips32r6 && check_inline_asm_flags mips32r6 '"aui $0, $0, 0"' '-mips32r6'
+ enabled mips32r5 && check_inline_asm_flags mips32r5 '"eretnc"' '-mips32r5'
+ enabled mips32r2 && check_inline_asm_flags mips32r2 '"ext $0, $0, 0, 1"' '-mips32r2'
+ disabled mips32r6 && disabled mips32r5 && disabled mips32r2 && check_inline_asm_flags mips32r1 '"addi $0, $0, 0"' '-mips32'