if (VM.VerifyAssertions) VM.assert(VM.NOT_REACHED);
if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED);
  public static void saveThreadState(VM_Registers registers) {    if (VM.VerifyAssertions) VM.assert(VM.NOT_REACHED);  // call site should have been hijacked by magic in compiler  }  /**   * Switch threads.   * The following registers are saved/restored   *        - nonvolatile fpr registers   *        - nonvolatile gpr registers   *        - FRAME_POINTER "register"   *        - THREAD_ID     "register"   *    * @param phantomThread thread that is currently running    * @param restoreRegs   registers from which we should restore    *                      the saved hardware state of another thread.   */  public static void threadSwitch(VM_Thread currentThread, 				  VM_Registers restoreRegs) {    if (VM.VerifyAssertions) VM.assert(VM.NOT_REACHED);  // call site should have been hijacked by magic in compiler  }  /**   * Resume execution with specified thread exception state.   * Restores virtually all registers (details vary by architecutre).   * But, the following are _NOT_ restored    *        - JTOC_POINTER   *        - PROCESSOR_REGISTER   * does not return (execution resumes at new IP)   * @param registers register values to be used   */  public static void restoreHardwareExceptionState(VM_Registers registers) {    if (VM.VerifyAssertions) VM.assert(VM.NOT_REACHED);  // call site should have been hijacked by magic in compiler  }  /**   * Return to caller of current method, resuming execution on a new stack    * that's a copy of the original.   * @param fp value to place into FRAME_POINTER register   */  public static void returnToNewStack(VM_Address fp) {    if (VM.VerifyAssertions) VM.assert(VM.NOT_REACHED);  // call site should have been hijacked by magic in compiler  }  /**   * Transfer execution to target of a dynamic bridge method.   * The following registers are restored:  non-volatiles, volatiles   * Note: this method must only be called from a VM_DynamicBridge method   * never returns (target method returns to caller of dynamic bridge method)   * @param instructions target method   */  public static void dynamicBridgeTo(INSTRUCTION[] instructions) {    if (VM.VerifyAssertions) VM.assert(VM.NOT_REACHED);  // call site should have been hijacked by magic in compiler  }  /** Call "main" method with argument list. */  public static void invokeMain(Object argv, INSTRUCTION[] main) {    if (VM.VerifyAssertions) VM.assert(VM.NOT_REACHED);  // call site should have been hijacked by magic in compiler  }  /** Call "<clinit>" method with no argument list. */  public static void invokeClassInitializer(INSTRUCTION[] clinit) {    if (VM.VerifyAssertions) VM.assert(VM.NOT_REACHED);  // call site should have been hijacked by magic in compiler  }  /** Call arbitrary method with argument list. */  public static void invokeMethodReturningVoid(INSTRUCTION[] code, 					       int[] gprs, 					       double[] fprs, 					       int[] spills) {    if (VM.VerifyAssertions) VM.assert(VM.NOT_REACHED);  // call site should have been hijacked by magic in compiler  }  /** Call arbitrary method with argument list. */  public static int invokeMethodReturningInt(INSTRUCTION[] code, 					     int[] gprs, 					     double[] fprs, 					     int[] spills) {    if (VM.VerifyAssertions) VM.assert(VM.NOT_REACHED);  // call site should have been hijacked by magic in compiler    return -1;  }