if (VM_Magic.getCallerFramePointer(caller_fp).EQ(STACKFRAME_SENTINAL_FP))
if (VM_Magic.getCallerFramePointer(caller_fp).EQ(STACKFRAME_SENTINEL_FP))
  public static void prepareParticipating (Plan p) {    VM_Processor vp = (VM_Processor) p;    if (VM.VerifyAssertions) VM._assert(vp == VM_Processor.getCurrentProcessor());    VM_Thread t = VM_Thread.getCurrentThread();    VM_Address fp = VM_Magic.getFramePointer();    while (true) {      VM_Address caller_ip = VM_Magic.getReturnAddress(fp);      VM_Address caller_fp = VM_Magic.getCallerFramePointer(fp);      if (VM_Magic.getCallerFramePointer(caller_fp).EQ(STACKFRAME_SENTINAL_FP)) 	VM.sysFail("prepareParticipating: Could not locate VM_CollectorThread.run");      int compiledMethodId = VM_Magic.getCompiledMethodID(caller_fp);      VM_CompiledMethod compiledMethod = VM_CompiledMethods.getCompiledMethod(compiledMethodId);      VM_Method method = compiledMethod.getMethod();      VM_Atom cls = method.getDeclaringClass().getDescriptor();      VM_Atom name = method.getName();      if (name == runAtom && cls == collectorThreadAtom) {	t.contextRegisters.setInnermost(caller_ip, caller_fp);	break;      }      fp = caller_fp;     }  }