< prev index next >

src/hotspot/share/opto/buildOopMap.cpp

Print this page
*** 256,16 ***
        // Check for a legal reg name in the oopMap and bailout if it is not.
        if (!omap->legal_vm_reg_name(r)) {
          regalloc->C->record_method_not_compilable("illegal oopMap register name");
          continue;
        }
!       if( t->is_ptr()->_offset == 0 ) { // Not derived?
          if( mcall ) {
            // Outgoing argument GC mask responsibility belongs to the callee,
            // not the caller.  Inspect the inputs to the call, to see if
            // this live-range is one of them.
!           uint cnt = mcall->tf()->domain()->cnt();
            uint j;
            for( j = TypeFunc::Parms; j < cnt; j++)
              if( mcall->in(j) == def )
                break;            // reaching def is an argument oop
            if( j < cnt )         // arg oops dont go in GC map
--- 256,16 ---
        // Check for a legal reg name in the oopMap and bailout if it is not.
        if (!omap->legal_vm_reg_name(r)) {
          regalloc->C->record_method_not_compilable("illegal oopMap register name");
          continue;
        }
!       if (t->is_ptr()->offset() == 0) { // Not derived?
          if( mcall ) {
            // Outgoing argument GC mask responsibility belongs to the callee,
            // not the caller.  Inspect the inputs to the call, to see if
            // this live-range is one of them.
!           uint cnt = mcall->tf()->domain_cc()->cnt();
            uint j;
            for( j = TypeFunc::Parms; j < cnt; j++)
              if( mcall->in(j) == def )
                break;            // reaching def is an argument oop
            if( j < cnt )         // arg oops dont go in GC map

*** 331,11 ***
        }
        if( mcall ) {
            // Outgoing argument GC mask responsibility belongs to the callee,
            // not the caller.  Inspect the inputs to the call, to see if
            // this live-range is one of them.
!         uint cnt = mcall->tf()->domain()->cnt();
          uint j;
          for( j = TypeFunc::Parms; j < cnt; j++)
            if( mcall->in(j) == def )
              break;            // reaching def is an argument oop
          if( j < cnt )         // arg oops dont go in GC map
--- 331,11 ---
        }
        if( mcall ) {
            // Outgoing argument GC mask responsibility belongs to the callee,
            // not the caller.  Inspect the inputs to the call, to see if
            // this live-range is one of them.
!         uint cnt = mcall->tf()->domain_cc()->cnt();
          uint j;
          for( j = TypeFunc::Parms; j < cnt; j++)
            if( mcall->in(j) == def )
              break;            // reaching def is an argument oop
          if( j < cnt )         // arg oops dont go in GC map
< prev index next >