fp = t.contextRegisters.gprs[FRAME_POINTER];
fp = t.contextRegisters.getInnermostFramePointer();
  gc_scanStacks () {    VM_Thread  t, mythread;    int  fp;    //  get thread ptr of running (the GC) thread    mythread  = VM_Thread.getCurrentThread();      for (int i = 0; i < VM_Scheduler.threads.length; i++) {      t  = VM_Scheduler.threads[i];      //  exclude GCThreads and "Empty" threads      if ( (t != null) && !t.isGCThread ) 			{      // get control of this thread      //  SYNCHRONIZING STATEMENT      if (VM_GCLocks.testAndSetThreadLock(i))       {        if (debug2Threads) VM_Scheduler.trace(          "Allocator: Selecting thread", "XXXXXX", i);	  // with use of generic scanStack in VM_ScanStack (08/01/01 SES)	  // all "running" threads BLOCKED_IN_SIGWAIT set their contextRegisters	  // ip & fp so that scanning their stacks will start at the "top" java frame.	  // for threads blocked in native, this was done earlier, when blocking the	  // native processors (VM_CollectorThread I think)	  //	  // So...none of the following getting of a proper fp should be needed	  //    //-#if RVM_WITH_DEDICATED_NATIVE_PROCESSORS    // alternate implementation of jni          // find if thread is in native vproc: either it's          // the NativeIdleThread in sysWait (if in yield,           // no special processing needed) or it's a mutator          // thread running C-code; in both cases, need to          // do the scan from the last Java frame to stacktop          //          if ((t.isNativeIdleThread &&           ((VM_NativeIdleThread)t).inSysWait)  ||           ((t.nativeAffinity  != null) &&             (t.nativeAffinity.activeThread == t)))            fp  = t.jniEnv.JNITopJavaFP;          else fp = t.contextRegisters.gprs[FRAME_POINTER];		//-#else		// default implementaton of jni        fp = t.contextRegisters.gprs[FRAME_POINTER];		//-#endif            VM_ScanStack.scanStack( t, VM_NULL, false /*relocate_code*/ );        }        else continue;  // some other gc thread has seized this thread      }  // not a null pointer, not a gc thread    }    // scan all threads in the system  }      // scanStacks()