837
838 // LIR_OpDelay
839 case lir_delay_slot: {
840 assert(op->as_OpDelay() != NULL, "must be");
841 LIR_OpDelay* opDelay = (LIR_OpDelay*)op;
842
843 visit(opDelay->delay_op());
844 break;
845 }
846
847 // LIR_OpTypeCheck
848 case lir_instanceof:
849 case lir_checkcast:
850 case lir_store_check: {
851 assert(op->as_OpTypeCheck() != NULL, "must be");
852 LIR_OpTypeCheck* opTypeCheck = (LIR_OpTypeCheck*)op;
853
854 if (opTypeCheck->_info_for_exception) do_info(opTypeCheck->_info_for_exception);
855 if (opTypeCheck->_info_for_patch) do_info(opTypeCheck->_info_for_patch);
856 if (opTypeCheck->_object->is_valid()) do_input(opTypeCheck->_object);
857 if (opTypeCheck->_array->is_valid()) do_input(opTypeCheck->_array);
858 if (opTypeCheck->_tmp1->is_valid()) do_temp(opTypeCheck->_tmp1);
859 if (opTypeCheck->_tmp2->is_valid()) do_temp(opTypeCheck->_tmp2);
860 if (opTypeCheck->_tmp3->is_valid()) do_temp(opTypeCheck->_tmp3);
861 if (opTypeCheck->_result->is_valid()) do_output(opTypeCheck->_result);
862 do_stub(opTypeCheck->_stub);
863 break;
864 }
865
866 // LIR_OpCompareAndSwap
867 case lir_cas_long:
868 case lir_cas_obj:
869 case lir_cas_int: {
870 assert(op->as_OpCompareAndSwap() != NULL, "must be");
871 LIR_OpCompareAndSwap* opCompareAndSwap = (LIR_OpCompareAndSwap*)op;
872
873 assert(opCompareAndSwap->_addr->is_valid(), "used");
874 assert(opCompareAndSwap->_cmp_value->is_valid(), "used");
875 assert(opCompareAndSwap->_new_value->is_valid(), "used");
876 if (opCompareAndSwap->_info) do_info(opCompareAndSwap->_info);
|
837
838 // LIR_OpDelay
839 case lir_delay_slot: {
840 assert(op->as_OpDelay() != NULL, "must be");
841 LIR_OpDelay* opDelay = (LIR_OpDelay*)op;
842
843 visit(opDelay->delay_op());
844 break;
845 }
846
847 // LIR_OpTypeCheck
848 case lir_instanceof:
849 case lir_checkcast:
850 case lir_store_check: {
851 assert(op->as_OpTypeCheck() != NULL, "must be");
852 LIR_OpTypeCheck* opTypeCheck = (LIR_OpTypeCheck*)op;
853
854 if (opTypeCheck->_info_for_exception) do_info(opTypeCheck->_info_for_exception);
855 if (opTypeCheck->_info_for_patch) do_info(opTypeCheck->_info_for_patch);
856 if (opTypeCheck->_object->is_valid()) do_input(opTypeCheck->_object);
857 if (op->code() == lir_store_check && opTypeCheck->_object->is_valid()) {
858 do_temp(opTypeCheck->_object);
859 }
860 if (opTypeCheck->_array->is_valid()) do_input(opTypeCheck->_array);
861 if (opTypeCheck->_tmp1->is_valid()) do_temp(opTypeCheck->_tmp1);
862 if (opTypeCheck->_tmp2->is_valid()) do_temp(opTypeCheck->_tmp2);
863 if (opTypeCheck->_tmp3->is_valid()) do_temp(opTypeCheck->_tmp3);
864 if (opTypeCheck->_result->is_valid()) do_output(opTypeCheck->_result);
865 do_stub(opTypeCheck->_stub);
866 break;
867 }
868
869 // LIR_OpCompareAndSwap
870 case lir_cas_long:
871 case lir_cas_obj:
872 case lir_cas_int: {
873 assert(op->as_OpCompareAndSwap() != NULL, "must be");
874 LIR_OpCompareAndSwap* opCompareAndSwap = (LIR_OpCompareAndSwap*)op;
875
876 assert(opCompareAndSwap->_addr->is_valid(), "used");
877 assert(opCompareAndSwap->_cmp_value->is_valid(), "used");
878 assert(opCompareAndSwap->_new_value->is_valid(), "used");
879 if (opCompareAndSwap->_info) do_info(opCompareAndSwap->_info);
|