+diff -ruN valgrind./helgrind/hg_main.c valgrind/helgrind/hg_main.c
+--- valgrind./helgrind/hg_main.c 2004-01-05 00:08:03.000000000 +0100
++++ valgrind/helgrind/hg_main.c 2004-02-29 15:25:04.411765536 +0100
+@@ -3103,42 +3103,42 @@
+
+ #undef DEBUG_STATE
+
+-static void eraser_mem_help_read_1(Addr a)
++REGPARM(1) static void eraser_mem_help_read_1(Addr a)
+ {
+ eraser_mem_read(a, 1, VG_(get_current_tid)());
+ }
+
+-static void eraser_mem_help_read_2(Addr a)
++REGPARM(1) static void eraser_mem_help_read_2(Addr a)
+ {
+ eraser_mem_read(a, 2, VG_(get_current_tid)());
+ }
+
+-static void eraser_mem_help_read_4(Addr a)
++REGPARM(1) static void eraser_mem_help_read_4(Addr a)
+ {
+ eraser_mem_read(a, 4, VG_(get_current_tid)());
+ }
+
+-static void eraser_mem_help_read_N(Addr a, UInt size)
++REGPARM(2) static void eraser_mem_help_read_N(Addr a, UInt size)
+ {
+ eraser_mem_read(a, size, VG_(get_current_tid)());
+ }
+
+-static void eraser_mem_help_write_1(Addr a, UInt val)
++REGPARM(2) static void eraser_mem_help_write_1(Addr a, UInt val)
+ {
+ if (*(UChar *)a != val)
+ eraser_mem_write(a, 1, VG_(get_current_tid)());
+ }
+-static void eraser_mem_help_write_2(Addr a, UInt val)
++REGPARM(2) static void eraser_mem_help_write_2(Addr a, UInt val)
+ {
+ if (*(UShort *)a != val)
+ eraser_mem_write(a, 2, VG_(get_current_tid)());
+ }
+-static void eraser_mem_help_write_4(Addr a, UInt val)
++REGPARM(2) static void eraser_mem_help_write_4(Addr a, UInt val)
+ {
+ if (*(UInt *)a != val)
+ eraser_mem_write(a, 4, VG_(get_current_tid)());
+ }
+-static void eraser_mem_help_write_N(Addr a, UInt size)
++REGPARM(2) static void eraser_mem_help_write_N(Addr a, UInt size)
+ {
+ eraser_mem_write(a, size, VG_(get_current_tid)());
+ }
+diff -ruN valgrind./memcheck/mc_include.h valgrind/memcheck/mc_include.h
+--- valgrind./memcheck/mc_include.h 2004-01-04 17:43:22.000000000 +0100
++++ valgrind/memcheck/mc_include.h 2004-02-29 15:16:14.271359128 +0100
+@@ -121,16 +121,16 @@
+
+
+ /* Functions defined in mc_main.c */
+-extern void MC_(helperc_STOREV4) ( Addr, UInt );
+-extern void MC_(helperc_STOREV2) ( Addr, UInt );
+-extern void MC_(helperc_STOREV1) ( Addr, UInt );
++extern __attribute__ ((regparm(2))) void MC_(helperc_STOREV4) ( Addr, UInt );
++extern __attribute__ ((regparm(2))) void MC_(helperc_STOREV2) ( Addr, UInt );
++extern __attribute__ ((regparm(2))) void MC_(helperc_STOREV1) ( Addr, UInt );
+
+-extern UInt MC_(helperc_LOADV1) ( Addr );
+-extern UInt MC_(helperc_LOADV2) ( Addr );
+-extern UInt MC_(helperc_LOADV4) ( Addr );
++extern __attribute__ ((regparm(1))) UInt MC_(helperc_LOADV1) ( Addr );
++extern __attribute__ ((regparm(1))) UInt MC_(helperc_LOADV2) ( Addr );
++extern __attribute__ ((regparm(1))) UInt MC_(helperc_LOADV4) ( Addr );
+
+-extern void MC_(fpu_write_check) ( Addr addr, Int size );
+-extern void MC_(fpu_read_check) ( Addr addr, Int size );
++extern __attribute__ ((regparm(2))) void MC_(fpu_write_check) ( Addr addr, Int size );
++extern __attribute__ ((regparm(2))) void MC_(fpu_read_check) ( Addr addr, Int size );
+
+
+ /* For client requests */