< prev index next >

src/cpu/sparc/vm/sparc.ad

Print this page




1843   case Op_CountLeadingZerosI:
1844   case Op_CountLeadingZerosL:
1845   case Op_CountTrailingZerosI:
1846   case Op_CountTrailingZerosL:
1847   case Op_PopCountI:
1848   case Op_PopCountL:
1849     if (!UsePopCountInstruction)
1850       return false;
1851   case Op_CompareAndSwapL:
1852 #ifdef _LP64
1853   case Op_CompareAndSwapP:
1854 #endif
1855     if (!VM_Version::supports_cx8())
1856       return false;
1857     break;
1858   }
1859 
1860   return true;  // Per default match rules are supported.
1861 }
1862 











1863 const int Matcher::float_pressure(int default_pressure_threshold) {
1864   return default_pressure_threshold;
1865 }
1866 
1867 int Matcher::regnum_to_fpu_offset(int regnum) {
1868   return regnum - 32; // The FP registers are in the second chunk
1869 }
1870 
1871 #ifdef ASSERT
1872 address last_rethrow = NULL;  // debugging aid for Rethrow encoding
1873 #endif
1874 
1875 // Vector width in bytes
1876 const int Matcher::vector_width_in_bytes(BasicType bt) {
1877   assert(MaxVectorSize == 8, "");
1878   return 8;
1879 }
1880 
1881 // Vector ideal reg
1882 const int Matcher::vector_ideal_reg(int size) {




1843   case Op_CountLeadingZerosI:
1844   case Op_CountLeadingZerosL:
1845   case Op_CountTrailingZerosI:
1846   case Op_CountTrailingZerosL:
1847   case Op_PopCountI:
1848   case Op_PopCountL:
1849     if (!UsePopCountInstruction)
1850       return false;
1851   case Op_CompareAndSwapL:
1852 #ifdef _LP64
1853   case Op_CompareAndSwapP:
1854 #endif
1855     if (!VM_Version::supports_cx8())
1856       return false;
1857     break;
1858   }
1859 
1860   return true;  // Per default match rules are supported.
1861 }
1862 
1863 const bool Matcher::match_rule_supported_vector(int opcode, int vlen) {
1864 
1865   // TODO
1866   // identify extra cases that we might want to provide match rules for
1867   // e.g. Op_ vector nodes and other intrinsics while guarding with vlen
1868   bool ret_value = match_rule_supported(opcode);
1869   // Add rules here.
1870 
1871   return ret_value;  // Per default match rules are supported.
1872 }
1873 
1874 const int Matcher::float_pressure(int default_pressure_threshold) {
1875   return default_pressure_threshold;
1876 }
1877 
1878 int Matcher::regnum_to_fpu_offset(int regnum) {
1879   return regnum - 32; // The FP registers are in the second chunk
1880 }
1881 
1882 #ifdef ASSERT
1883 address last_rethrow = NULL;  // debugging aid for Rethrow encoding
1884 #endif
1885 
1886 // Vector width in bytes
1887 const int Matcher::vector_width_in_bytes(BasicType bt) {
1888   assert(MaxVectorSize == 8, "");
1889   return 8;
1890 }
1891 
1892 // Vector ideal reg
1893 const int Matcher::vector_ideal_reg(int size) {


< prev index next >