case DCBST_opcode:case ICBI_opcode:
case DCBST_opcode:case DCBT_opcode:case DCBTST_opcode: case DCBZ_opcode:case DCBZL_opcode:case ICBI_opcode:
  public void registerInstruction (OPT_Instruction s, OPT_BasicBlock b) {    if (!s.isImplicitLoad() && !s.isImplicitStore() && !s.isAllocation()        && s.operator() != PHI        && !(insertPEIDeps             && (s.isPEI()                 || Label.conforms(s)                 || BBend.conforms(s)                 || s.operator.opcode == UNINT_BEGIN_opcode                 || s.operator.opcode == UNINT_END_opcode)))      return;    // handled by registerUnknown    if (s.isDynamicLinkingPoint())       return;    switch (s.getOpcode()) {      case LABEL_opcode: // only reached if insertPEIDeps        labelHelper (s, b);        break;      case BBEND_opcode: // only reached if insertPEIDeps        bbendHelper (s, b);        break;      case UNINT_BEGIN_opcode: // only reached if insertPEIDeps      case UNINT_END_opcode: // only reached if insertPEIDeps        registerUse (s, exceptionState);        registerDef (s, b, exceptionState);        break;      case GETFIELD_opcode:        getFieldHelper(s, b);        break;      case PUTFIELD_opcode:        putFieldHelper(s, b);        break;      case GETSTATIC_opcode:        getStaticHelper(s, b);        break;      case PUTSTATIC_opcode:        putStaticHelper(s, b);        break;      case NEW_opcode:case NEW_UNRESOLVED_opcode:        newHelper(s, b);        break;      case NEWARRAY_opcode:case NEWARRAY_UNRESOLVED_opcode:        newArrayHelper(s, b);        break;      case NEWOBJMULTIARRAY_opcode:        /* SJF: after talking with Martin, I'm not sure what the          correct Array SSA representation for an allocation should         be.  Since we do not yet use these heap variables, do         nothing for now.           Future: this should probably def the heap variable for every         field of the object type allocated.         // treat this opcode like a CALL         registerUnknown(s,b);         */        break;      case INT_ALOAD_opcode:case LONG_ALOAD_opcode:case FLOAT_ALOAD_opcode:      case DOUBLE_ALOAD_opcode:case REF_ALOAD_opcode:case BYTE_ALOAD_opcode:      case UBYTE_ALOAD_opcode:case USHORT_ALOAD_opcode:case SHORT_ALOAD_opcode:        aloadHelper(s, b);        break;      case INT_ASTORE_opcode:case LONG_ASTORE_opcode:case FLOAT_ASTORE_opcode:      case DOUBLE_ASTORE_opcode:case REF_ASTORE_opcode:case BYTE_ASTORE_opcode:      case SHORT_ASTORE_opcode:        astoreHelper(s, b);        break;      case ARRAYLENGTH_opcode:        arraylengthHelper(s, b);        break;      case CALL_opcode:case SYSCALL_opcode:      case MONITORENTER_opcode:case MONITOREXIT_opcode:      case PREPARE_INT_opcode:case PREPARE_ADDR_opcode:      case ATTEMPT_INT_opcode:case ATTEMPT_ADDR_opcode:      case READ_CEILING_opcode:case WRITE_FLOOR_opcode:        //-#if RVM_FOR_POWERPC      case DCBST_opcode:case ICBI_opcode:        //-#endif        // do nothing: these cases handled by registerUnknown        break;      case UBYTE_LOAD_opcode: case BYTE_LOAD_opcode:       case USHORT_LOAD_opcode: case SHORT_LOAD_opcode:       case INT_LOAD_opcode: case LONG_LOAD_opcode: case DOUBLE_LOAD_opcode:case REF_LOAD_opcode:        // !!TODO: how to handle this special case?        break;      case BYTE_STORE_opcode: case SHORT_STORE_opcode: case REF_STORE_opcode:      case INT_STORE_opcode: case LONG_STORE_opcode: case DOUBLE_STORE_opcode:        // !!TODO: how to handle this special case?        break;      case PHI_opcode:        phiHelper(s, b);        break;      default:        if (!s.isPEI()) {          System.out.println("SSA dictionary failed on " + s.toString());          throw  new OPT_OperationNotImplementedException(                                                          "OPT_SSADictionary: Unsupported opcode " + s);        }    }           // switch    if (insertPEIDeps) {      if (s.isImplicitStore()) addExceptionStateToUses(s);      if (s.isPEI()) addExceptionStateToDefs(s, b);    }  }