private static byte regUshr(OPT_Instruction s) {
private static DefUseEffect regUshr(OPT_Instruction s) {
  private static byte regUshr(OPT_Instruction s) {   if (CF_ADDR) {      OPT_Operand op2 = Binary.getVal2(s);      if (op2.isIntConstant()) {        int val2 = op2.asIntConstant().value;        OPT_Operand op1 = Binary.getVal1(s);        if (op1.isAddressConstant()) {          // BOTH CONSTANTS: FOLD          Word val1 = op1.asAddressConstant().value.toWord();          Move.mutate(s, REF_MOVE, Binary.getClearResult(s),                       AC(val1.rshl(val2).toAddress()));          return MOVE_FOLDED;        } else {          // ONLY OP2 IS CONSTANT: ATTEMPT TO APPLY AXIOMS          if (val2 == 0) {                  // x >>> 0 == x            Move.mutate(s, REF_MOVE, Binary.getClearResult(s),                         Binary.getClearVal1(s));            return MOVE_REDUCED;          }          if (val2 >= BITS_IN_ADDRESS) {                  // x >>> 32 == 0            Move.mutate(s, REF_MOVE, Binary.getClearResult(s),                         IC(0));            return MOVE_FOLDED;          }        }      }    }    return UNCHANGED;  }