case EX_CLASSCAST: return new ClassCastException();
	public static Throwable systemException(int nr, int address)			throws UninterruptiblePragma, LoadStaticsPragma,			PrivilegedActionPragma {		//Unsafe.getCurrentProcessor().getArchitecture().getStackReader().debugStackTrace();		if (false) {			Unsafe.debug(nr);			Unsafe.debug(address);			Unsafe.die("System exception");		}		//Unsafe.debug(nr); Unsafe.debug(address);		final String hexAddress = NumberUtils.hex(address, 8);		final VmThread current = Unsafe.getCurrentProcessor()				.getCurrentThread();		//final String state = " (" + current.getReadableErrorState() + ")";		final String state = "";		// Mark a system exception, so the stacktrace uses the exception frame		// instead of the current frame.		current.setInSystemException();		switch (nr) {		case EX_NULLPOINTER:			return new NullPointerException("NPE at address " + hexAddress					+ state);		case EX_PAGEFAULT:			return new InternalError("Page fault at " + hexAddress + state);		case EX_INDEXOUTOFBOUNDS:			return new ArrayIndexOutOfBoundsException("Out of bounds at index "					+ address + state);		case EX_DIV0:			return new ArithmeticException("Division by zero at address "					+ hexAddress + state);		case EX_ABSTRACTMETHOD:			return new AbstractMethodError("Abstract method at " + hexAddress					+ state);		case EX_STACKOVERFLOW:			return new StackOverflowError();		case EX_CLASSCAST:			return new ClassCastException();		default:			return new UnknownError("Unknown system-exception at " + hexAddress					+ state);		}	}