+ else {
+ /* This is a normal NPE: addr must be NULL and the NPE-type
+ define is 0. */
+
+ addr = _gregs[s1];
+ type = (s4) addr;
+ }
+
+ /* generate appropriate exception */
+
+ o = exceptions_new_hardware_exception(pv, sp, ra, xpc, type, val);
+
+ /* set registers */
+
+ _gregs[REG_ITMP1_XPTR] = (ptrint) o;
+ _gregs[REG_ITMP2_XPC] = (ptrint) xpc;
+
+#if defined(__UCLIBC__)
+ _gregs[CTX_EPC] = (ptrint) asm_handle_exception;
+#else
+ _mc->pc = (ptrint) asm_handle_exception;
+#endif