hotspot/src/share/vm/c1/c1_LIR.cpp
changeset 34220 1ba69cb5585c
parent 34170 628b8ec31f2b
child 35146 9ebfec283f56
equal deleted inserted replaced
34211:d25c2fc1e248 34220:1ba69cb5585c
    53   return FrameMap::nr2xmmreg(xmm_regnrLo());
    53   return FrameMap::nr2xmmreg(xmm_regnrLo());
    54 }
    54 }
    55 
    55 
    56 #endif // X86
    56 #endif // X86
    57 
    57 
    58 #if defined(SPARC) || defined(PPC)
    58 #if defined(SPARC) || defined(PPC32)
    59 
    59 
    60 FloatRegister LIR_OprDesc::as_float_reg() const {
    60 FloatRegister LIR_OprDesc::as_float_reg() const {
    61   return FrameMap::nr2floatreg(fpu_regnr());
    61   return FrameMap::nr2floatreg(fpu_regnr());
    62 }
    62 }
    63 
    63 
    65   return FrameMap::nr2floatreg(fpu_regnrHi());
    65   return FrameMap::nr2floatreg(fpu_regnrHi());
    66 }
    66 }
    67 
    67 
    68 #endif
    68 #endif
    69 
    69 
    70 #if defined(ARM) || defined (AARCH64)
    70 #if defined(ARM) || defined(AARCH64) || defined(PPC64)
    71 
    71 
    72 FloatRegister LIR_OprDesc::as_float_reg() const {
    72 FloatRegister LIR_OprDesc::as_float_reg() const {
    73   return as_FloatRegister(fpu_regnr());
    73   return as_FloatRegister(fpu_regnr());
    74 }
    74 }
    75 
    75 
   205     case T_LONG:
   205     case T_LONG:
   206       assert((kindfield == cpu_register || kindfield == stack_value) &&
   206       assert((kindfield == cpu_register || kindfield == stack_value) &&
   207              size_field() == double_size, "must match");
   207              size_field() == double_size, "must match");
   208       break;
   208       break;
   209     case T_FLOAT:
   209     case T_FLOAT:
   210       // FP return values can be also in CPU registers on ARM and PPC (softfp ABI)
   210       // FP return values can be also in CPU registers on ARM and PPC32 (softfp ABI)
   211       assert((kindfield == fpu_register || kindfield == stack_value
   211       assert((kindfield == fpu_register || kindfield == stack_value
   212              ARM_ONLY(|| kindfield == cpu_register)
   212              ARM_ONLY(|| kindfield == cpu_register)
   213              PPC_ONLY(|| kindfield == cpu_register) ) &&
   213              PPC32_ONLY(|| kindfield == cpu_register) ) &&
   214              size_field() == single_size, "must match");
   214              size_field() == single_size, "must match");
   215       break;
   215       break;
   216     case T_DOUBLE:
   216     case T_DOUBLE:
   217       // FP return values can be also in CPU registers on ARM and PPC (softfp ABI)
   217       // FP return values can be also in CPU registers on ARM and PPC32 (softfp ABI)
   218       assert((kindfield == fpu_register || kindfield == stack_value
   218       assert((kindfield == fpu_register || kindfield == stack_value
   219              ARM_ONLY(|| kindfield == cpu_register)
   219              ARM_ONLY(|| kindfield == cpu_register)
   220              PPC_ONLY(|| kindfield == cpu_register) ) &&
   220              PPC32_ONLY(|| kindfield == cpu_register) ) &&
   221              size_field() == double_size, "must match");
   221              size_field() == double_size, "must match");
   222       break;
   222       break;
   223     case T_BOOLEAN:
   223     case T_BOOLEAN:
   224     case T_CHAR:
   224     case T_CHAR:
   225     case T_BYTE:
   225     case T_BYTE:
   556       LIR_OpConvert* opConvert = (LIR_OpConvert*)op;
   556       LIR_OpConvert* opConvert = (LIR_OpConvert*)op;
   557 
   557 
   558       assert(opConvert->_info == NULL, "must be");
   558       assert(opConvert->_info == NULL, "must be");
   559       if (opConvert->_opr->is_valid())       do_input(opConvert->_opr);
   559       if (opConvert->_opr->is_valid())       do_input(opConvert->_opr);
   560       if (opConvert->_result->is_valid())    do_output(opConvert->_result);
   560       if (opConvert->_result->is_valid())    do_output(opConvert->_result);
   561 #ifdef PPC
   561 #ifdef PPC32
   562       if (opConvert->_tmp1->is_valid())      do_temp(opConvert->_tmp1);
   562       if (opConvert->_tmp1->is_valid())      do_temp(opConvert->_tmp1);
   563       if (opConvert->_tmp2->is_valid())      do_temp(opConvert->_tmp2);
   563       if (opConvert->_tmp2->is_valid())      do_temp(opConvert->_tmp2);
   564 #endif
   564 #endif
   565       do_stub(opConvert->_stub);
   565       do_stub(opConvert->_stub);
   566 
   566 
  1951 // LIR_OpConvert
  1951 // LIR_OpConvert
  1952 void LIR_OpConvert::print_instr(outputStream* out) const {
  1952 void LIR_OpConvert::print_instr(outputStream* out) const {
  1953   print_bytecode(out, bytecode());
  1953   print_bytecode(out, bytecode());
  1954   in_opr()->print(out);                  out->print(" ");
  1954   in_opr()->print(out);                  out->print(" ");
  1955   result_opr()->print(out);              out->print(" ");
  1955   result_opr()->print(out);              out->print(" ");
  1956 #ifdef PPC
  1956 #ifdef PPC32
  1957   if(tmp1()->is_valid()) {
  1957   if(tmp1()->is_valid()) {
  1958     tmp1()->print(out); out->print(" ");
  1958     tmp1()->print(out); out->print(" ");
  1959     tmp2()->print(out); out->print(" ");
  1959     tmp2()->print(out); out->print(" ");
  1960   }
  1960   }
  1961 #endif
  1961 #endif