hotspot/src/share/vm/c1/c1_LIR.cpp
changeset 38018 1dc6c6f21231
parent 38017 55047d16f141
child 40071 53e12df44b7b
equal deleted inserted replaced
38017:55047d16f141 38018:1dc6c6f21231
   722       LIR_Op1* op1 = (LIR_Op1*)op;
   722       LIR_Op1* op1 = (LIR_Op1*)op;
   723 
   723 
   724       assert(op1->_info == NULL, "no info");
   724       assert(op1->_info == NULL, "no info");
   725       assert(op1->_opr->is_valid(), "exception oop");         do_input(op1->_opr);
   725       assert(op1->_opr->is_valid(), "exception oop");         do_input(op1->_opr);
   726       assert(op1->_result->is_illegal(), "no result");
   726       assert(op1->_result->is_illegal(), "no result");
   727 
       
   728       break;
       
   729     }
       
   730 
       
   731 
       
   732     case lir_tan:
       
   733     case lir_log10: {
       
   734       assert(op->as_Op2() != NULL, "must be");
       
   735       LIR_Op2* op2 = (LIR_Op2*)op;
       
   736 
       
   737       // On x86 tan/sin/cos need two temporary fpu stack slots and
       
   738       // log/log10 need one so handle opr2 and tmp as temp inputs.
       
   739       // Register input operand as temp to guarantee that it doesn't
       
   740       // overlap with the input.
       
   741       assert(op2->_info == NULL, "not used");
       
   742       assert(op2->_tmp5->is_illegal(), "not used");
       
   743       assert(op2->_opr1->is_valid(), "used");
       
   744       do_input(op2->_opr1); do_temp(op2->_opr1);
       
   745 
       
   746       if (op2->_opr2->is_valid())         do_temp(op2->_opr2);
       
   747       if (op2->_tmp1->is_valid())         do_temp(op2->_tmp1);
       
   748       if (op2->_tmp2->is_valid())         do_temp(op2->_tmp2);
       
   749       if (op2->_tmp3->is_valid())         do_temp(op2->_tmp3);
       
   750       if (op2->_tmp4->is_valid())         do_temp(op2->_tmp4);
       
   751       if (op2->_result->is_valid())       do_output(op2->_result);
       
   752 
   727 
   753       break;
   728       break;
   754     }
   729     }
   755 
   730 
   756 // LIR_Op3
   731 // LIR_Op3
  1738      case lir_div:                   s = "div";           break;
  1713      case lir_div:                   s = "div";           break;
  1739      case lir_div_strictfp:          s = "div_strictfp";  break;
  1714      case lir_div_strictfp:          s = "div_strictfp";  break;
  1740      case lir_rem:                   s = "rem";           break;
  1715      case lir_rem:                   s = "rem";           break;
  1741      case lir_abs:                   s = "abs";           break;
  1716      case lir_abs:                   s = "abs";           break;
  1742      case lir_sqrt:                  s = "sqrt";          break;
  1717      case lir_sqrt:                  s = "sqrt";          break;
  1743      case lir_tan:                   s = "tan";           break;
       
  1744      case lir_log10:                 s = "log10";         break;
       
  1745      case lir_logic_and:             s = "logic_and";     break;
  1718      case lir_logic_and:             s = "logic_and";     break;
  1746      case lir_logic_or:              s = "logic_or";      break;
  1719      case lir_logic_or:              s = "logic_or";      break;
  1747      case lir_logic_xor:             s = "logic_xor";     break;
  1720      case lir_logic_xor:             s = "logic_xor";     break;
  1748      case lir_shl:                   s = "shift_left";    break;
  1721      case lir_shl:                   s = "shift_left";    break;
  1749      case lir_shr:                   s = "shift_right";   break;
  1722      case lir_shr:                   s = "shift_right";   break;