$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
--- strace-4.5.18.orig/util.c	2008-08-19 06:47:51.000000000 +0200
+++ strace-4.5.18/util.c	2009-01-02 21:24:05.530098238 +0100
@@ -1097,6 +1097,12 @@ struct tcb *tcp;
 #elif defined(SH64)
        if (upeek(tcp->pid, REG_PC ,&pc) < 0)
                return -1;
+#elif defined(CRISV10)
+	if (upeek(tcp->pid, 4*PT_IRP, &pc) < 0)
+		return -1;
+#elif defined(CRISV32)
+	if (upeek(tcp->pid, 4*PT_ERP, &pc) < 0)
+		return -1;
 #endif
 	return pc;
 #endif /* LINUX */
@@ -1245,6 +1251,22 @@ struct tcb *tcp;
 		return;
 	}
 	tprintf("[%08lx] ", pc);
+#elif defined(CRISV10)
+	long pc;
+	
+	if (upeek(tcp->pid, 4*PT_IRP, &pc) < 0) {
+		PRINTBADPC;
+		return;
+	}
+	tprintf("[%08lx] ", (unsigned long)pc);
+#elif defined(CRISV32)
+	long pc;
+	
+	if (upeek(tcp->pid, 4*PT_ERP, &pc) < 0) {
+		PRINTBADPC;
+		return;
+	}
+	tprintf("[%08lx] ", (unsigned long)pc);
 #endif /* !architecture */
 #endif /* LINUX */
 
@@ -1444,6 +1466,13 @@ typedef struct regs arg_setup_state;
 #  define arg0_offset   (REG_OFFSET+16)
 #  define arg1_offset   (REG_OFFSET+24)
 #  define restore_arg0(tcp, state, val) 0
+# elif defined CRISV10 || defined CRISV32
+#  define arg0_offset   (4*PT_R11)
+#  define arg1_offset   (4*PT_ORIG_R10)
+#  define restore_arg0(tcp, state, val) 0
+#  define restore_arg1(tcp, state, val) 0
+#  define arg0_index   1
+#  define arg1_index   0
 # else
 #  define arg0_offset	0
 #  define arg1_offset	4