if ( jniFramePtr > 0) { jniFramePtr = jniRefs[jniFramePtr >> 2]; jniNextRef = jniNextRef - 4 ; }
if ( jniFramePtr > 0) { jniFramePtr = jniRefs[jniFramePtr >> 2]; jniNextRef = jniNextRef - 4 ; }    int registerLocation = VM_Magic.getMemoryWord(this.framePtr) - JNI_RVM_NONVOLATILE_OFFSET;
   VM_Address getNextReferenceAddress() { //- implements VM_GCMapIterator      int nextFP;      VM_Address ref_address;      if ( jniNextRef > jniFramePtr ) {	  ref_address = VM_Magic.objectAsAddress(jniRefs).add(jniNextRef);	  jniNextRef = jniNextRef - 4;	  return ref_address;      }      // report location of saved processor reg in the Java to C frame      if ( !jniSavedProcessorRegAddr.isZero() ) {          ref_address = jniSavedProcessorRegAddr;          jniSavedProcessorRegAddr = VM_Address.zero();          return ref_address;      }      // jniNextRef -> savedFramePtr for another "frame" of refs for another      // sequence of Native C frames lower in the stack, or to 0 if this is the      // last jni frame in the JNIRefs stack.  If more frames, initialize for a      // later scan of those refs.      //      if ( jniFramePtr > 0) {	  jniFramePtr = jniRefs[jniFramePtr >> 2];	  jniNextRef = jniNextRef - 4 ;      }      // set register locations for non-volatiles to point to registers saved in      // the JNI transition frame at a fixed negative offset from the callers FP.      int registerLocation = VM_Magic.getMemoryWord(this.framePtr) - JNI_RVM_NONVOLATILE_OFFSET;      for (int i = LAST_NONVOLATILE_GPR; i >= FIRST_NONVOLATILE_GPR - 1; --i) {         registerLocations[i] = registerLocation;         registerLocation -= 4;      }      return VM_Address.zero();  // no more refs to report      }