sp = sp.sub(4);
sp = sp.sub(BYTES_IN_ADDRESS);
  public void deliverException(VM_CompiledMethod compiledMethod,			       VM_Address        catchBlockInstructionAddress,			       Throwable         exceptionObject,			       VM_Registers      registers) {    VM_Address fp    = registers.getInnermostFramePointer();    VM_NormalMethod method = (VM_NormalMethod)compiledMethod.getMethod();    // reset sp to "empty expression stack" state    //    VM_Address sp = fp.add(VM_Compiler.getEmptyStackOffset(method));    // push exception object as argument to catch block    //    sp = sp.sub(4);    VM_Magic.setMemoryAddress(sp, VM_Magic.objectAsAddress(exceptionObject));    // set address at which to resume executing frame    //    registers.ip = catchBlockInstructionAddress;    // branch to catch block    //    VM.enableGC(); // disabled right before VM_Runtime.deliverException was called    if (VM.VerifyAssertions) VM._assert(registers.inuse == true);     registers.inuse = false;    VM_Magic.restoreHardwareExceptionState(registers);    if (VM.VerifyAssertions) VM._assert(NOT_REACHED);  }