< prev index next >

src/hotspot/cpu/arm/vm_version_arm.hpp

Print this page




  91 
  92 #define KUSER_HELPER_VERSION_ADDR 0xffff0ffc
  93 #define KUSER_VERSION_CMPXCHG32 2
  94 #define KUSER_VERSION_CMPXCHG64 5
  95 
  96   // Read additional info using OS-specific interfaces
  97   static void get_os_cpu_info();
  98 
  99  public:
 100   static void early_initialize();
 101 
 102   static int arm_arch()             { return _arm_arch; }
 103   static int stored_pc_adjustment() { return _stored_pc_adjustment; }
 104   static bool supports_rev()        { return _arm_arch >= 6; }
 105   static bool supports_ldrex()      { return _arm_arch >= 6; }
 106   static bool supports_movw()       { return _arm_arch >= 7; }
 107   static bool supports_ldrexd()     { return _arm_arch >= 7; }
 108   static bool supports_compare_and_exchange() { return true; }
 109   static bool supports_kuser_cmpxchg32() { return _kuser_helper_version >= KUSER_VERSION_CMPXCHG32; }
 110   static bool supports_kuser_cmpxchg64() { return _kuser_helper_version >= KUSER_VERSION_CMPXCHG64; }
 111   // Override Abstract_VM_Version implementation
 112   static bool use_biased_locking();
 113   static const char* vm_info_string();
 114 
 115   static bool has_vfp()             { return (_features & vfp_m) != 0; }
 116   static bool has_vfp3_32()         { return (_features & vfp3_32_m) != 0; }
 117   static bool has_simd()            { return (_features & simd_m) != 0; }
 118 
 119   static bool simd_math_is_compliant() { return false; }
 120 
 121   static bool prefer_moves_over_load_literal() { return supports_movw(); }
 122 
 123   friend class VM_Version_StubGenerator;
 124 
 125 #endif // AARCH64
 126 };
 127 
 128 #endif // CPU_ARM_VM_VM_VERSION_ARM_HPP


  91 
  92 #define KUSER_HELPER_VERSION_ADDR 0xffff0ffc
  93 #define KUSER_VERSION_CMPXCHG32 2
  94 #define KUSER_VERSION_CMPXCHG64 5
  95 
  96   // Read additional info using OS-specific interfaces
  97   static void get_os_cpu_info();
  98 
  99  public:
 100   static void early_initialize();
 101 
 102   static int arm_arch()             { return _arm_arch; }
 103   static int stored_pc_adjustment() { return _stored_pc_adjustment; }
 104   static bool supports_rev()        { return _arm_arch >= 6; }
 105   static bool supports_ldrex()      { return _arm_arch >= 6; }
 106   static bool supports_movw()       { return _arm_arch >= 7; }
 107   static bool supports_ldrexd()     { return _arm_arch >= 7; }
 108   static bool supports_compare_and_exchange() { return true; }
 109   static bool supports_kuser_cmpxchg32() { return _kuser_helper_version >= KUSER_VERSION_CMPXCHG32; }
 110   static bool supports_kuser_cmpxchg64() { return _kuser_helper_version >= KUSER_VERSION_CMPXCHG64; }


 111   static const char* vm_info_string();
 112 
 113   static bool has_vfp()             { return (_features & vfp_m) != 0; }
 114   static bool has_vfp3_32()         { return (_features & vfp3_32_m) != 0; }
 115   static bool has_simd()            { return (_features & simd_m) != 0; }
 116 
 117   static bool simd_math_is_compliant() { return false; }
 118 
 119   static bool prefer_moves_over_load_literal() { return supports_movw(); }
 120 
 121   friend class VM_Version_StubGenerator;
 122 
 123 #endif // AARCH64
 124 };
 125 
 126 #endif // CPU_ARM_VM_VM_VERSION_ARM_HPP
< prev index next >