< prev index next >

src/hotspot/share/prims/vectorSupport.cpp

Print this page
*** 441,10 ***
--- 441,113 ---
          case T_DOUBLE: return Op_VectorMaskToLong;
          default: fatal("MASK_TOLONG: %s", type2name(bt));
        }
        break;
      }
+     case VECTOR_OP_EXPAND: {
+       switch (bt) {
+         case T_BYTE:  // fall-through
+         case T_SHORT: // fall-through
+         case T_INT:   // fall-through
+         case T_LONG:  // fall-through
+         case T_FLOAT: // fall-through
+         case T_DOUBLE: return Op_ExpandV;
+         default: fatal("EXPAND: %s", type2name(bt));
+       }
+       break;
+     }
+     case VECTOR_OP_COMPRESS: {
+       switch (bt) {
+         case T_BYTE:  // fall-through
+         case T_SHORT: // fall-through
+         case T_INT:   // fall-through
+         case T_LONG:  // fall-through
+         case T_FLOAT: // fall-through
+         case T_DOUBLE: return Op_CompressV;
+         default: fatal("COMPRESS: %s", type2name(bt));
+       }
+       break;
+     }
+     case VECTOR_OP_MASK_COMPRESS: {
+       switch (bt) {
+         case T_BYTE:  // fall-through
+         case T_SHORT: // fall-through
+         case T_INT:   // fall-through
+         case T_LONG:  // fall-through
+         case T_FLOAT: // fall-through
+         case T_DOUBLE: return Op_CompressM;
+         default: fatal("MASK_COMPRESS: %s", type2name(bt));
+       }
+       break;
+     }
+     case VECTOR_OP_BIT_COUNT: {
+       switch (bt) {
+         case T_BYTE:  // Returning Op_PopCountI
+         case T_SHORT: // for byte and short types temporarily
+         case T_INT:   return Op_PopCountI;
+         case T_LONG:  return Op_PopCountL;
+         default: fatal("BIT_COUNT: %s", type2name(bt));
+       }
+       break;
+     }
+     case VECTOR_OP_TZ_COUNT: {
+       switch (bt) {
+         case T_BYTE:
+         case T_SHORT:
+         case T_INT:   return Op_CountTrailingZerosI;
+         case T_LONG:  return Op_CountTrailingZerosL;
+         default: fatal("TZ_COUNT: %s", type2name(bt));
+       }
+       break;
+     }
+     case VECTOR_OP_LZ_COUNT: {
+       switch (bt) {
+         case T_BYTE:
+         case T_SHORT:
+         case T_INT:   return Op_CountLeadingZerosI;
+         case T_LONG:  return Op_CountLeadingZerosL;
+         default: fatal("LZ_COUNT: %s", type2name(bt));
+       }
+       break;
+     }
+     case VECTOR_OP_REVERSE: {
+       switch (bt) {
+         case T_BYTE:  // Temporarily returning
+         case T_SHORT: // Op_ReverseI for byte and short
+         case T_INT:   return Op_ReverseI;
+         case T_LONG:  return Op_ReverseL;
+         default: fatal("REVERSE: %s", type2name(bt));
+       }
+       break;
+     }
+     case VECTOR_OP_REVERSE_BYTES: {
+       switch (bt) {
+         case T_BYTE:
+         case T_SHORT:
+         case T_INT:   return Op_ReverseBytesI;
+         case T_LONG:  return Op_ReverseBytesL;
+         default: fatal("REVERSE_BYTES: %s", type2name(bt));
+       }
+       break;
+     }
+     case VECTOR_OP_COMPRESS_BITS: {
+       switch (bt) {
+         case T_INT:
+         case T_LONG: return Op_CompressBits;
+         default: fatal("COMPRESS_BITS: %s", type2name(bt));
+       }
+       break;
+     }
+     case VECTOR_OP_EXPAND_BITS: {
+       switch (bt) {
+         case T_INT:
+         case T_LONG: return Op_ExpandBits;
+         default: fatal("EXPAND_BITS: %s", type2name(bt));
+       }
+       break;
+     }
+ 
      case VECTOR_OP_TAN:
      case VECTOR_OP_TANH:
      case VECTOR_OP_SIN:
      case VECTOR_OP_SINH:
      case VECTOR_OP_COS:
< prev index next >