[MIPSR6] Add mips64r6 and mips32r6 targets

Add mips64r6 target and corresponding mips32r6 target.
Defaults remain as mips64r2 and mips32r2.

Apply -FP64A codegen subsetting to mips32r6 only.
Access FR=0 odd-numbered 32-bit float regs only via
double-prec even-numbered regs, not by single-prec ops.

Change-Id: I1740a6c658304b6c41242be58d68753e6f171658
This commit is contained in:
Duane Sand 2014-07-09 13:30:52 -07:00
parent 6670e24aed
commit 6bab974cdc
5 changed files with 25 additions and 2 deletions

View File

@ -9,6 +9,7 @@ CLANG_CONFIG_mips_UNKNOWN_CFLAGS := \
$(CLANG_CONFIG_UNKNOWN_CFLAGS) \
-mips32 \
-mips32r2 \
-mips32r6 \
-mfp32 \
-mfp64 \
-mfpxx \

View File

@ -1,7 +1,5 @@
# Clang flags for mips64 arch, target or host.
$(warning Untested mips64 clang flags, fix me!)
CLANG_CONFIG_mips64_EXTRA_ASFLAGS :=
CLANG_CONFIG_mips64_EXTRA_CFLAGS :=
CLANG_CONFIG_mips64_EXTRA_LDFLAGS :=
@ -9,6 +7,7 @@ CLANG_CONFIG_mips64_EXTRA_LDFLAGS :=
# Include common unknown flags
CLANG_CONFIG_mips64_UNKNOWN_CFLAGS := \
$(CLANG_CONFIG_UNKNOWN_CFLAGS) \
-mips64r6 \
-fno-strict-volatile-bitfields \
-fgcse-after-reload \
-frerun-cse-after-loop \

View File

@ -0,0 +1,12 @@
# Configuration for Android on MIPS.
# Generating binaries for MIPS32R6/hard-float/little-endian
ARCH_MIPS_REV6 := true
arch_variant_cflags := \
-mips32r6 \
-mfp64 \
-mno-odd-spreg \
-msynci
arch_variant_ldflags := \
-Wl,-melf32ltsmip

View File

@ -0,0 +1,7 @@
# Configuration for Android on mips64r6.
ARCH_MIPS_REV6 := true
arch_variant_cflags := \
-mips64r6 \
-msynci

View File

@ -30,8 +30,12 @@ TARGET_CPU_ABI := mips64
TARGET_2ND_ARCH := mips
ifeq (,$(TARGET_2ND_ARCH_VARIANT))
ifeq ($(TARGET_ARCH_VARIANT),mips64r6)
TARGET_2ND_ARCH_VARIANT := mips32r6
else
TARGET_2ND_ARCH_VARIANT := mips32r2-fp
endif
endif
TARGET_2ND_CPU_ABI := mips
# The emulator (qemu) uses the Goldfish devices