Removed all uses of register numbers (eg. arch-specific ones like R_EAX, and
arch-neutral ones like R_STACK_PTR).  Where they were used, we now always talk
about an offset into the Vex guest state, and an offset.  As a result,
the shadow register get/set functions had to change.  They now also use
an offset and size, and in an arch-neutral way.

Also, I combined the five the post_reg_write* functions into a single one that
takes a 'CorePart' parameter (plus also a ThreadId).  Also, I added more
arguments (the CorePart, and the ThreadId) to the post_mem_write event, for
consistency with the pre_mem_* events.

Also, I reduced the number of register names that must be specified by each
arch, by factoring out duplication; and shortened their names for the core (eg.
ARCH_STACK_PTR is now STACK_PTR).

Plus some related minor cleanups in syscall wrappers.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3094 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/toolfuncs.def b/coregrind/toolfuncs.def
index 1fa39ef..cf60f1c 100644
--- a/coregrind/toolfuncs.def
+++ b/coregrind/toolfuncs.def
@@ -204,33 +204,21 @@
 void,	ban_mem_stack,	Addr a, SizeT len
 
 ## These ones occur around syscalls, signal handling, etc
-void,	pre_mem_read,	CorePart part, ThreadId tid, Char* s, Addr a, SizeT size
-void,	pre_mem_read_asciiz,	CorePart part, ThreadId tid, Char* s, Addr a
-void,	pre_mem_write,	CorePart part, ThreadId tid, Char* s, Addr a, SizeT size
-## Not implemented yet -- have to add in lots of places, which is a
-## pain.  Won't bother unless/until there's a need.
-## void (*post_mem_read)  ( ThreadState* tst, Char* s, Addr a, SizeT size );
-void,	post_mem_write,	Addr a, SizeT size
+void,	pre_mem_read,	    CorePart part, ThreadId tid, Char* s, Addr a, SizeT size
+void,	pre_mem_read_asciiz,CorePart part, ThreadId tid, Char* s, Addr a
+void,	pre_mem_write,	    CorePart part, ThreadId tid, Char* s, Addr a, SizeT size
+void,	post_mem_write,	    CorePart part, ThreadId tid, Addr a, SizeT size
 
 
-## Register events -- if `shadow_regs' need is set, all should probably be
-## used.  Use VG_(set_thread_shadow_archreg)() to set the shadow of the
-## changed register.
-
-void,	pre_reg_read,	CorePart part, ThreadId tid, Char* s, UInt reg, SizeT size
-
-## Use VG_(set_shadow_archreg)() to set the eight general purpose regs,
-## and use VG_(set_shadow_eflags)() to set eflags.
-void,	post_regs_write_init,	void
-
-## Use VG_(set_thread_shadow_archreg)() to set the shadow regs for these
+## Register events -- if `shadow_regs' need is set, these should probably be
+## used.  Use VG_(set_shadow_state_area)() to set the shadow regs for these
 ## events.
-void,	post_reg_write_syscall_return,	ThreadId tid, UInt reg
-void,	post_reg_write_deliver_signal,	ThreadId tid, UInt reg
-void,	post_reg_write_pthread_return,	ThreadId tid, UInt reg
-void,	post_reg_write_clientreq_return,	ThreadId tid, UInt reg
+
+void,	pre_reg_read,	CorePart part, ThreadId tid, Char* s, OffT guest_state_offset, SizeT size
+void,	post_reg_write,	CorePart part, ThreadId tid, OffT guest_state_offset, SizeT size
+
 ## This one is called for malloc() et al if they are replaced by a tool.
-void,	post_reg_write_clientcall_return,	ThreadId tid, UInt reg, Addr f
+void,	post_reg_write_clientcall_return,	ThreadId tid, OffT guest_state_offset, SizeT size, Addr f
 
 
 ## Scheduler events (not exhaustive)