Index: /trunk/source/lisp-kernel/x86-exceptions.c
===================================================================
--- /trunk/source/lisp-kernel/x86-exceptions.c	(revision 8580)
+++ /trunk/source/lisp-kernel/x86-exceptions.c	(revision 8581)
@@ -874,4 +874,6 @@
     if ((program_counter[0] == XUUO_OPCODE_0) &&
 	(program_counter[1] == XUUO_OPCODE_1)) {
+      TCR *target = (TCR *)xpGPR(context, Iarg_z);
+
       switch (program_counter[2]) {
       case XUUO_TLB_TOO_SMALL:
@@ -888,4 +890,30 @@
 
       case XUUO_SUSPEND_NOW:
+	xpPC(context)+=3;
+	return true;
+
+      case XUUO_INTERRUPT:
+        raise_thread_interrupt(target);
+	xpPC(context)+=3;
+	return true;
+
+      case XUUO_SUSPEND:
+        xpGPR(context,Iimm0) = (LispObj) lisp_suspend_tcr(target);
+	xpPC(context)+=3;
+	return true;
+
+      case XUUO_SUSPEND_ALL:
+        lisp_suspend_other_threads();
+	xpPC(context)+=3;
+	return true;
+
+
+      case XUUO_RESUME:
+        xpGPR(context,Iimm0) = (LispObj) lisp_resume_tcr(target);
+	xpPC(context)+=3;
+	return true;
+        
+      case XUUO_RESUME_ALL:
+        lisp_resume_other_threads();
 	xpPC(context)+=3;
 	return true;
Index: /trunk/source/lisp-kernel/x86-exceptions.h
===================================================================
--- /trunk/source/lisp-kernel/x86-exceptions.h	(revision 8580)
+++ /trunk/source/lisp-kernel/x86-exceptions.h	(revision 8581)
@@ -105,4 +105,9 @@
 #define XUUO_INTERRUPT_NOW 2
 #define XUUO_SUSPEND_NOW 3
+#define XUUO_INTERRUPT 4
+#define XUUO_SUSPEND 5
+#define XUUO_SUSPEND_ALL 6
+#define XUUO_RESUME 7
+#define XUUO_RESUME_ALL 8
 
 void
