diff options
| author | 2014-11-17 12:02:05 -0800 | |
|---|---|---|
| committer | 2014-11-19 11:53:07 -0800 | |
| commit | 8366ca0d7ba3b80a2d5be65ba436446cc32440bd (patch) | |
| tree | b21c1656af3ec5c9f775373c9d78cb832bee2ca9 | |
| parent | 8542ff31bfa778a06316511672dc113a3f19ae5b (diff) | |
Fix the last users of TARGET_CPU_SMP.
Everyone else assumes SMP.
Change-Id: I7ff7faef46fbec6c67d6e446812d599e473cba39
| -rw-r--r-- | build/Android.common_build.mk | 14 | ||||
| -rw-r--r-- | compiler/dex/quick/arm/int_arm.cc | 8 | ||||
| -rw-r--r-- | compiler/dex/quick/arm64/int_arm64.cc | 8 | ||||
| -rwxr-xr-x | compiler/dex/quick/x86/target_x86.cc | 8 | ||||
| -rw-r--r-- | compiler/llvm/ir_builder.h | 2 | ||||
| -rw-r--r-- | compiler/utils/arm/assembler_arm32.cc | 2 | ||||
| -rw-r--r-- | compiler/utils/arm/assembler_thumb2.cc | 2 | ||||
| -rw-r--r-- | compiler/utils/arm64/assembler_arm64.cc | 2 | ||||
| -rw-r--r-- | compiler/utils/x86/assembler_x86.cc | 2 | ||||
| -rw-r--r-- | compiler/utils/x86_64/assembler_x86_64.cc | 2 | ||||
| -rw-r--r-- | runtime/arch/arm/instruction_set_features_arm.cc | 10 | ||||
| -rw-r--r-- | runtime/arch/arm64/instruction_set_features_arm64.cc | 5 | ||||
| -rw-r--r-- | runtime/arch/mips/instruction_set_features_mips.cc | 4 | ||||
| -rw-r--r-- | runtime/arch/x86/instruction_set_features_x86.cc | 4 |
14 files changed, 14 insertions, 59 deletions
diff --git a/build/Android.common_build.mk b/build/Android.common_build.mk index 7cb23f8f19..000678b83c 100644 --- a/build/Android.common_build.mk +++ b/build/Android.common_build.mk @@ -252,7 +252,7 @@ endif ifndef LIBART_IMG_HOST_BASE_ADDRESS $(error LIBART_IMG_HOST_BASE_ADDRESS unset) endif -ART_HOST_CFLAGS += $(art_cflags) -DANDROID_SMP=1 -DART_BASE_ADDRESS=$(LIBART_IMG_HOST_BASE_ADDRESS) +ART_HOST_CFLAGS += $(art_cflags) -DART_BASE_ADDRESS=$(LIBART_IMG_HOST_BASE_ADDRESS) ART_HOST_CFLAGS += -DART_DEFAULT_INSTRUCTION_SET_FEATURES=default ifndef LIBART_IMG_TARGET_BASE_ADDRESS @@ -283,18 +283,6 @@ endif ART_TARGET_CFLAGS += -DART_BASE_ADDRESS_MIN_DELTA=$(LIBART_IMG_TARGET_MIN_BASE_ADDRESS_DELTA) ART_TARGET_CFLAGS += -DART_BASE_ADDRESS_MAX_DELTA=$(LIBART_IMG_TARGET_MAX_BASE_ADDRESS_DELTA) -ifeq ($(TARGET_CPU_SMP),true) - ART_TARGET_CFLAGS += -DANDROID_SMP=1 -else - ifeq ($(TARGET_CPU_SMP),false) - ART_TARGET_CFLAGS += -DANDROID_SMP=0 - else - $(warning TARGET_CPU_SMP should be (true|false), found $(TARGET_CPU_SMP)) - # Make sure we emit barriers for the worst case. - ART_TARGET_CFLAGS += -DANDROID_SMP=1 - endif -endif - # To use oprofile_android --callgraph, uncomment this and recompile with "mmm art -B -j16" # ART_TARGET_CFLAGS += -fno-omit-frame-pointer -marm -mapcs diff --git a/compiler/dex/quick/arm/int_arm.cc b/compiler/dex/quick/arm/int_arm.cc index 57544b5187..cab039bfd4 100644 --- a/compiler/dex/quick/arm/int_arm.cc +++ b/compiler/dex/quick/arm/int_arm.cc @@ -16,6 +16,7 @@ /* This file contains codegen for the Thumb2 ISA. */ +#include "arch/instruction_set_features.h" #include "arm_lir.h" #include "codegen_arm.h" #include "dex/quick/mir_to_lir-inl.h" @@ -1119,7 +1120,9 @@ LIR* ArmMir2Lir::OpDecAndBranch(ConditionCode c_code, RegStorage reg, LIR* targe } bool ArmMir2Lir::GenMemBarrier(MemBarrierKind barrier_kind) { -#if ANDROID_SMP != 0 + if (!cu_->GetInstructionSetFeatures()->IsSmp()) { + return false; + } // Start off with using the last LIR as the barrier. If it is not enough, then we will generate one. LIR* barrier = last_lir_insn_; @@ -1149,9 +1152,6 @@ bool ArmMir2Lir::GenMemBarrier(MemBarrierKind barrier_kind) { DCHECK(!barrier->flags.use_def_invalid); barrier->u.m.def_mask = &kEncodeAll; return ret; -#else - return false; -#endif } void ArmMir2Lir::GenNegLong(RegLocation rl_dest, RegLocation rl_src) { diff --git a/compiler/dex/quick/arm64/int_arm64.cc b/compiler/dex/quick/arm64/int_arm64.cc index dfdb76bbab..0e00698388 100644 --- a/compiler/dex/quick/arm64/int_arm64.cc +++ b/compiler/dex/quick/arm64/int_arm64.cc @@ -16,6 +16,7 @@ /* This file contains codegen for the Thumb2 ISA. */ +#include "arch/instruction_set_features.h" #include "arm64_lir.h" #include "codegen_arm64.h" #include "dex/quick/mir_to_lir-inl.h" @@ -978,7 +979,9 @@ LIR* Arm64Mir2Lir::OpDecAndBranch(ConditionCode c_code, RegStorage reg, LIR* tar } bool Arm64Mir2Lir::GenMemBarrier(MemBarrierKind barrier_kind) { -#if ANDROID_SMP != 0 + if (!cu_->GetInstructionSetFeatures()->IsSmp()) { + return false; + } // Start off with using the last LIR as the barrier. If it is not enough, then we will generate one. LIR* barrier = last_lir_insn_; @@ -1014,9 +1017,6 @@ bool Arm64Mir2Lir::GenMemBarrier(MemBarrierKind barrier_kind) { DCHECK(!barrier->flags.use_def_invalid); barrier->u.m.def_mask = &kEncodeAll; return ret; -#else - return false; -#endif } void Arm64Mir2Lir::GenIntToLong(RegLocation rl_dest, RegLocation rl_src) { diff --git a/compiler/dex/quick/x86/target_x86.cc b/compiler/dex/quick/x86/target_x86.cc index f5f71132e4..ead31b37b6 100755 --- a/compiler/dex/quick/x86/target_x86.cc +++ b/compiler/dex/quick/x86/target_x86.cc @@ -18,6 +18,7 @@ #include <inttypes.h> #include <string> +#include "arch/instruction_set_features.h" #include "backend_x86.h" #include "codegen_x86.h" #include "dex/compiler_internals.h" @@ -594,7 +595,9 @@ bool X86Mir2Lir::ProvidesFullMemoryBarrier(X86OpCode opcode) { } bool X86Mir2Lir::GenMemBarrier(MemBarrierKind barrier_kind) { -#if ANDROID_SMP != 0 + if (!cu_->GetInstructionSetFeatures()->IsSmp()) { + return false; + } // Start off with using the last LIR as the barrier. If it is not enough, then we will update it. LIR* mem_barrier = last_lir_insn_; @@ -630,9 +633,6 @@ bool X86Mir2Lir::GenMemBarrier(MemBarrierKind barrier_kind) { mem_barrier->u.m.def_mask = &kEncodeAll; } return ret; -#else - return false; -#endif } void X86Mir2Lir::CompilerInitializeRegAlloc() { diff --git a/compiler/llvm/ir_builder.h b/compiler/llvm/ir_builder.h index 03498efcbb..990ba02d3d 100644 --- a/compiler/llvm/ir_builder.h +++ b/compiler/llvm/ir_builder.h @@ -101,10 +101,8 @@ class IRBuilder : public LLVMIRBuilder { // Extend memory barrier //-------------------------------------------------------------------------- void CreateMemoryBarrier(MemBarrierKind barrier_kind) { -#if ANDROID_SMP // TODO: select atomic ordering according to given barrier kind. CreateFence(::llvm::SequentiallyConsistent); -#endif } //-------------------------------------------------------------------------- diff --git a/compiler/utils/arm/assembler_arm32.cc b/compiler/utils/arm/assembler_arm32.cc index 39ebf6803c..a1594b02ac 100644 --- a/compiler/utils/arm/assembler_arm32.cc +++ b/compiler/utils/arm/assembler_arm32.cc @@ -1513,10 +1513,8 @@ void Arm32Assembler::MemoryBarrier(ManagedRegister mscratch) { void Arm32Assembler::dmb(DmbOptions flavor) { -#if ANDROID_SMP != 0 int32_t encoding = 0xf57ff05f; // dmb Emit(encoding | flavor); -#endif } diff --git a/compiler/utils/arm/assembler_thumb2.cc b/compiler/utils/arm/assembler_thumb2.cc index 3ab9b2ba03..a34920999e 100644 --- a/compiler/utils/arm/assembler_thumb2.cc +++ b/compiler/utils/arm/assembler_thumb2.cc @@ -2599,10 +2599,8 @@ void Thumb2Assembler::MemoryBarrier(ManagedRegister mscratch) { void Thumb2Assembler::dmb(DmbOptions flavor) { -#if ANDROID_SMP != 0 int32_t encoding = 0xf3bf8f50; // dmb in T1 encoding. Emit32(encoding | flavor); -#endif } diff --git a/compiler/utils/arm64/assembler_arm64.cc b/compiler/utils/arm64/assembler_arm64.cc index 02011b87a0..390f2ea449 100644 --- a/compiler/utils/arm64/assembler_arm64.cc +++ b/compiler/utils/arm64/assembler_arm64.cc @@ -476,9 +476,7 @@ void Arm64Assembler::Copy(FrameOffset /*dst*/, Offset /*dest_offset*/, void Arm64Assembler::MemoryBarrier(ManagedRegister m_scratch ATTRIBUTE_UNUSED) { // TODO: Should we check that m_scratch is IP? - see arm. -#if ANDROID_SMP != 0 ___ Dmb(vixl::InnerShareable, vixl::BarrierAll); -#endif } void Arm64Assembler::SignExtend(ManagedRegister mreg, size_t size) { diff --git a/compiler/utils/x86/assembler_x86.cc b/compiler/utils/x86/assembler_x86.cc index 8ebb40e338..afa4a3b958 100644 --- a/compiler/utils/x86/assembler_x86.cc +++ b/compiler/utils/x86/assembler_x86.cc @@ -1830,9 +1830,7 @@ void X86Assembler::Copy(FrameOffset dest, Offset dest_offset, FrameOffset src, O } void X86Assembler::MemoryBarrier(ManagedRegister) { -#if ANDROID_SMP != 0 mfence(); -#endif } void X86Assembler::CreateHandleScopeEntry(ManagedRegister mout_reg, diff --git a/compiler/utils/x86_64/assembler_x86_64.cc b/compiler/utils/x86_64/assembler_x86_64.cc index 2bb2ed8c9c..8c428f455e 100644 --- a/compiler/utils/x86_64/assembler_x86_64.cc +++ b/compiler/utils/x86_64/assembler_x86_64.cc @@ -2371,9 +2371,7 @@ void X86_64Assembler::Copy(FrameOffset dest, Offset dest_offset, FrameOffset src } void X86_64Assembler::MemoryBarrier(ManagedRegister) { -#if ANDROID_SMP != 0 mfence(); -#endif } void X86_64Assembler::CreateHandleScopeEntry(ManagedRegister mout_reg, diff --git a/runtime/arch/arm/instruction_set_features_arm.cc b/runtime/arch/arm/instruction_set_features_arm.cc index f49c0371e0..f8590d3bd2 100644 --- a/runtime/arch/arm/instruction_set_features_arm.cc +++ b/runtime/arch/arm/instruction_set_features_arm.cc @@ -108,12 +108,7 @@ const ArmInstructionSetFeatures* ArmInstructionSetFeatures::FromBitmap(uint32_t } const ArmInstructionSetFeatures* ArmInstructionSetFeatures::FromCppDefines() { -#if defined(HAVE_ANDROID_OS) && (ANDROID_SMP == 0) - const bool smp = false; -#else const bool smp = true; -#endif - #if defined(__ARM_ARCH_EXT_IDIV__) const bool has_div = true; #else @@ -204,11 +199,8 @@ static void bad_divide_inst_handle(int signo ATTRIBUTE_UNUSED, siginfo_t* si ATT } const ArmInstructionSetFeatures* ArmInstructionSetFeatures::FromAssembly() { -#if defined(HAVE_ANDROID_OS) && (ANDROID_SMP == 0) - const bool smp = false; -#else const bool smp = true; -#endif + // See if have a sdiv instruction. Register a signal handler and try to execute an sdiv // instruction. If we get a SIGILL then it's not supported. struct sigaction sa, osa; diff --git a/runtime/arch/arm64/instruction_set_features_arm64.cc b/runtime/arch/arm64/instruction_set_features_arm64.cc index 5bc943c93f..a1270dcde9 100644 --- a/runtime/arch/arm64/instruction_set_features_arm64.cc +++ b/runtime/arch/arm64/instruction_set_features_arm64.cc @@ -58,12 +58,7 @@ const Arm64InstructionSetFeatures* Arm64InstructionSetFeatures::FromBitmap(uint3 } const Arm64InstructionSetFeatures* Arm64InstructionSetFeatures::FromCppDefines() { -#if defined(HAVE_ANDROID_OS) && (ANDROID_SMP == 0) - const bool smp = false; -#else const bool smp = true; -#endif - const bool is_a53 = true; // Pessimistically assume all ARM64s are A53s. return new Arm64InstructionSetFeatures(smp, is_a53); } diff --git a/runtime/arch/mips/instruction_set_features_mips.cc b/runtime/arch/mips/instruction_set_features_mips.cc index efec993340..11be2a8bc2 100644 --- a/runtime/arch/mips/instruction_set_features_mips.cc +++ b/runtime/arch/mips/instruction_set_features_mips.cc @@ -44,11 +44,7 @@ const MipsInstructionSetFeatures* MipsInstructionSetFeatures::FromBitmap(uint32_ } const MipsInstructionSetFeatures* MipsInstructionSetFeatures::FromCppDefines() { -#if defined(HAVE_ANDROID_OS) && (ANDROID_SMP == 0) - const bool smp = false; -#else const bool smp = true; -#endif // TODO: here we assume the FPU is always 32-bit. const bool fpu_32bit = true; diff --git a/runtime/arch/x86/instruction_set_features_x86.cc b/runtime/arch/x86/instruction_set_features_x86.cc index 32cf909fd1..a12773dc9c 100644 --- a/runtime/arch/x86/instruction_set_features_x86.cc +++ b/runtime/arch/x86/instruction_set_features_x86.cc @@ -70,11 +70,7 @@ const X86InstructionSetFeatures* X86InstructionSetFeatures::FromBitmap(uint32_t } const X86InstructionSetFeatures* X86InstructionSetFeatures::FromCppDefines(bool x86_64) { -#if defined(HAVE_ANDROID_OS) && (ANDROID_SMP == 0) - const bool smp = false; -#else const bool smp = true; -#endif #ifndef __SSSE3__ const bool has_SSSE3 = false; |