diff --git a/.gitignore b/.gitignore
index 84ae916..fb571d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,4 @@
 /valgrind-3.10.0.BETA1.tar.bz2
 /valgrind-3.10.0.BETA2.tar.bz2
 /valgrind-3.10.0.tar.bz2
+/valgrind-3.10.1.TEST1.tar.bz2
diff --git a/sources b/sources
index 70f4104..beab9ce 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-7c311a72a20388aceced1aa5573ce970  valgrind-3.10.0.tar.bz2
+e32d23cad60ef4677af27efb15f247e2  valgrind-3.10.1.TEST1.tar.bz2
diff --git a/valgrind-3.10.0-aarch64-dmb-sy.patch b/valgrind-3.10.0-aarch64-dmb-sy.patch
deleted file mode 100644
index 7f1de8a..0000000
--- a/valgrind-3.10.0-aarch64-dmb-sy.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-commit 5343bb38f44897fcb179b4756d75294719d75fbb
-Author: mjw <mjw@8f6e269a-dfd6-0310-a8e1-e2731360e62c>
-Date:   Sat Oct 11 19:13:35 2014 +0000
-
-    Bug 339858 arm64 recognize dmb sy. Data Memory Barrier full SYstem variant.
-    
-    git-svn-id: svn://svn.valgrind.org/vex/trunk@2975 8f6e269a-dfd6-0310-a8e1-e2731360e62c
-
-diff --git a/VEX/priv/guest_arm64_toIR.c b/VEX/priv/guest_arm64_toIR.c
-index 2aa145c..5ebe0a6 100644
---- a/VEX/priv/guest_arm64_toIR.c
-+++ b/VEX/priv/guest_arm64_toIR.c
-@@ -5537,6 +5537,11 @@ Bool dis_ARM64_branch_etc(/*MB_OUT*/DisResult* dres, UInt insn,
-       DIP("isb\n");
-       return True;
-    }
-+   if (INSN(31,0) == 0xD5033FBF) {
-+      stmt(IRStmt_MBE(Imbe_Fence));
-+      DIP("dmb sy\n");
-+      return True;
-+   }
-    if (INSN(31,0) == 0xD5033BBF) {
-       stmt(IRStmt_MBE(Imbe_Fence));
-       DIP("dmb ish\n");
diff --git a/valgrind-3.10.0-aarch64-fcvta.patch b/valgrind-3.10.0-aarch64-fcvta.patch
deleted file mode 100644
index 8146c3b..0000000
--- a/valgrind-3.10.0-aarch64-fcvta.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-commit f9fae2ab83f7263f8d58f83ddd58921cd5d1dca8
-Author: sewardj <sewardj@8f6e269a-dfd6-0310-a8e1-e2731360e62c>
-Date:   Thu Oct 30 23:10:45 2014 +0000
-
-    Implement FCVTAS W_S and FCVTAU W_S.  Fixes #340509.
-    
-    
-    git-svn-id: svn://svn.valgrind.org/vex/trunk@2984 8f6e269a-dfd6-0310-a8e1-e2731360e62c
-
-diff --git a/VEX/priv/guest_arm64_toIR.c b/VEX/priv/guest_arm64_toIR.c
-index 2677211..acfdc02 100644
---- a/VEX/priv/guest_arm64_toIR.c
-+++ b/VEX/priv/guest_arm64_toIR.c
-@@ -12189,6 +12189,7 @@ Bool dis_AdvSIMD_fp_to_from_int_conv(/*MB_OUT*/DisResult* dres, UInt insn)
-    /* 31 30 29 28    23   21 20    18     15     9 4
-       sf  0  0 11110 type 1  rmode opcode 000000 n d
-       The first 3 bits are really "sf 0 S", but S is always zero.
-+      Decode fields: sf,type,rmode,opcode
-    */
- #  define INSN(_bMax,_bMin)  SLICE_UInt(insn, (_bMax), (_bMin))
-    if (INSN(30,29) != BITS2(0,0)
-@@ -12205,7 +12206,7 @@ Bool dis_AdvSIMD_fp_to_from_int_conv(/*MB_OUT*/DisResult* dres, UInt insn)
-    UInt dd    = INSN(4,0);
- 
-    // op = 000, 001
--   /* -------- FCVT{N,P,M,Z}{S,U} (scalar, integer) -------- */
-+   /* -------- FCVT{N,P,M,Z,A}{S,U} (scalar, integer) -------- */
-    /*    30       23   20 18  15     9 4
-       sf 00 11110 0x 1 00 000 000000 n d  FCVTNS Rd, Fn (round to
-       sf 00 11110 0x 1 00 001 000000 n d  FCVTNU Rd, Fn  nearest)
-@@ -12213,23 +12214,38 @@ Bool dis_AdvSIMD_fp_to_from_int_conv(/*MB_OUT*/DisResult* dres, UInt insn)
-       ---------------- 10 --------------  FCVTM-------- (round to -inf)
-       ---------------- 11 --------------  FCVTZ-------- (round to zero)
- 
-+      ---------------- 00 100 ----------  FCVTAS------- (nearest, ties away)
-+      ---------------- 00 101 ----------  FCVTAU------- (nearest, ties away)
-+
-       Rd is Xd when sf==1, Wd when sf==0
-       Fn is Dn when x==1, Sn when x==0
-       20:19 carry the rounding mode, using the same encoding as FPCR
-    */
--   if (ty <= X01 && (op == BITS3(0,0,0) || op == BITS3(0,0,1))) {
-+   if (ty <= X01
-+       && (   ((op == BITS3(0,0,0) || op == BITS3(0,0,1)) && True)
-+           || ((op == BITS3(1,0,0) || op == BITS3(1,0,1)) && rm == BITS2(0,0))
-+          )
-+      ) {
-       Bool isI64 = bitSF == 1;
-       Bool isF64 = (ty & 1) == 1;
-       Bool isU   = (op & 1) == 1;
-       /* Decide on the IR rounding mode to use. */
-       IRRoundingMode irrm = 8; /*impossible*/
-       HChar ch = '?';
--      switch (rm) {
--         case BITS2(0,0): ch = 'n'; irrm = Irrm_NEAREST; break;
--         case BITS2(0,1): ch = 'p'; irrm = Irrm_PosINF; break;
--         case BITS2(1,0): ch = 'm'; irrm = Irrm_NegINF; break;
--         case BITS2(1,1): ch = 'z'; irrm = Irrm_ZERO; break;
--         default: vassert(0);
-+      if (op == BITS3(0,0,0) || op == BITS3(0,0,1)) {
-+         switch (rm) {
-+            case BITS2(0,0): ch = 'n'; irrm = Irrm_NEAREST; break;
-+            case BITS2(0,1): ch = 'p'; irrm = Irrm_PosINF; break;
-+            case BITS2(1,0): ch = 'm'; irrm = Irrm_NegINF; break;
-+            case BITS2(1,1): ch = 'z'; irrm = Irrm_ZERO; break;
-+            default: vassert(0);
-+         }
-+      } else {
-+         vassert(op == BITS3(1,0,0) || op == BITS3(1,0,1));
-+         switch (rm) {
-+            case BITS2(0,0): ch = 'a'; irrm = Irrm_NEAREST; break;
-+            default: vassert(0);
-+         }
-       }
-       vassert(irrm != 8);
-       /* Decide on the conversion primop, based on the source size,
-@@ -12254,9 +12270,11 @@ Bool dis_AdvSIMD_fp_to_from_int_conv(/*MB_OUT*/DisResult* dres, UInt insn)
-              (iop == Iop_F32toI32S && irrm == Irrm_ZERO)   /* FCVTZS Wd,Sn */
-           || (iop == Iop_F32toI32S && irrm == Irrm_NegINF) /* FCVTMS Wd,Sn */
-           || (iop == Iop_F32toI32S && irrm == Irrm_PosINF) /* FCVTPS Wd,Sn */
-+          || (iop == Iop_F32toI32S && irrm == Irrm_NEAREST)/* FCVT{A,N}S W,S */
-           /* F32toI32U */
-           || (iop == Iop_F32toI32U && irrm == Irrm_ZERO)   /* FCVTZU Wd,Sn */
-           || (iop == Iop_F32toI32U && irrm == Irrm_NegINF) /* FCVTMU Wd,Sn */
-+          || (iop == Iop_F32toI32U && irrm == Irrm_NEAREST)/* FCVT{A,N}U W,S */
-           /* F32toI64S */
-           || (iop == Iop_F32toI64S && irrm == Irrm_ZERO)   /* FCVTZS Xd,Sn */
-           /* F32toI64U */
-commit 9f69352a36003c35cfe8ffe01ba8ef0f830b4198
-Author: mjw <mjw@8f6e269a-dfd6-0310-a8e1-e2731360e62c>
-Date:   Tue Nov 4 15:30:42 2014 +0000
-
-    Bug 340632 arm64: unhandled instruction fcvtas
-    
-    git-svn-id: svn://svn.valgrind.org/vex/trunk@2987 8f6e269a-dfd6-0310-a8e1-e2731360e62c
-
-diff --git a/VEX/priv/guest_arm64_toIR.c b/VEX/priv/guest_arm64_toIR.c
-index 4229d6a..1426d00 100644
---- a/VEX/priv/guest_arm64_toIR.c
-+++ b/VEX/priv/guest_arm64_toIR.c
-@@ -12304,6 +12304,7 @@ Bool dis_AdvSIMD_fp_to_from_int_conv(/*MB_OUT*/DisResult* dres, UInt insn)
-           || (iop == Iop_F64toI64S && irrm == Irrm_ZERO)   /* FCVTZS Xd,Dn */
-           || (iop == Iop_F64toI64S && irrm == Irrm_NegINF) /* FCVTMS Xd,Dn */
-           || (iop == Iop_F64toI64S && irrm == Irrm_PosINF) /* FCVTPS Xd,Dn */
-+          || (iop == Iop_F64toI64S && irrm == Irrm_NEAREST) /* FCVT{A,N}S Xd,Dn */
-           /* F64toI64U */
-           || (iop == Iop_F64toI64U && irrm == Irrm_ZERO)   /* FCVTZU Xd,Dn */
-           || (iop == Iop_F64toI64U && irrm == Irrm_NegINF) /* FCVTMU Xd,Dn */
diff --git a/valgrind-3.10.0-aarch64-frint.patch b/valgrind-3.10.0-aarch64-frint.patch
deleted file mode 100644
index 41b67bb..0000000
--- a/valgrind-3.10.0-aarch64-frint.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-commit 35343350beb699e87bae86a5466895de6d9827e9
-Author: sewardj <sewardj@8f6e269a-dfd6-0310-a8e1-e2731360e62c>
-Date:   Thu Oct 30 15:37:16 2014 +0000
-
-    Implement frintx d_d and s_s.  Fixes #339926.
-    
-    
-    git-svn-id: svn://svn.valgrind.org/vex/trunk@2981 8f6e269a-dfd6-0310-a8e1-e2731360e62c
-
-diff --git a/VEX/priv/guest_arm64_toIR.c b/VEX/priv/guest_arm64_toIR.c
-index 7f22f13..0377139 100644
---- a/VEX/priv/guest_arm64_toIR.c
-+++ b/VEX/priv/guest_arm64_toIR.c
-@@ -11921,7 +11921,7 @@ Bool dis_AdvSIMD_fp_data_proc_1_source(/*MB_OUT*/DisResult* dres, UInt insn)
-             011 zero      (FRINTZ)
-             000 tieeven
-             100 tieaway   (FRINTA) -- !! FIXME KLUDGED !!
--            110 per FPCR + "exact = TRUE"
-+            110 per FPCR + "exact = TRUE" (FRINTX)
-             101 unallocated
-       */
-       Bool    isD   = (ty & 1) == 1;
-@@ -11935,6 +11935,10 @@ Bool dis_AdvSIMD_fp_data_proc_1_source(/*MB_OUT*/DisResult* dres, UInt insn)
-          case BITS3(0,0,1): ch = 'p'; irrmE = mkU32(Irrm_PosINF); break;
-          // The following is a kludge.  Should be: Irrm_NEAREST_TIE_AWAY_0
-          case BITS3(1,0,0): ch = 'a'; irrmE = mkU32(Irrm_NEAREST); break;
-+         // I am unsure about the following, due to the "integral exact"
-+         // description in the manual.  What does it mean?
-+         case BITS3(1,1,0):
-+            ch = 'x'; irrmE = mkexpr(mk_get_IR_rounding_mode()); break;
-          default: break;
-       }
-       if (irrmE) {
diff --git a/valgrind-3.10.0-aarch64-syscalls.patch b/valgrind-3.10.0-aarch64-syscalls.patch
deleted file mode 100644
index 55475c3..0000000
--- a/valgrind-3.10.0-aarch64-syscalls.patch
+++ /dev/null
@@ -1,275 +0,0 @@
-diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
-index e3f736b..dd13bda 100644
---- a/coregrind/m_syswrap/syswrap-arm64-linux.c
-+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
-@@ -953,6 +953,7 @@ static SyscallTableEntry syscall_main_table[] = {
-    LINX_(__NR_setresuid,         sys_setresuid),         // 147
-    LINXY(__NR_getresuid,         sys_getresuid),         // 148
-    LINXY(__NR_getresgid,         sys_getresgid),         // 150
-+   GENXY(__NR_times,             sys_times),             // 153
-    GENX_(__NR_setpgid,           sys_setpgid),           // 154
-    GENX_(__NR_getpgid,           sys_getpgid),           // 155
-    GENXY(__NR_uname,             sys_newuname),          // 160
-@@ -1068,7 +1069,6 @@ static SyscallTableEntry syscall_main_table[] = {
- //ZZ 
- //ZZ    GENX_(__NR_rmdir,             sys_rmdir),          // 40
- //ZZ    LINXY(__NR_pipe,              sys_pipe),           // 42
--//ZZ    GENXY(__NR_times,             sys_times),          // 43
- //ZZ //   GENX_(__NR_prof,              sys_ni_syscall),     // 44
- 
- //ZZ    LINX_(__NR_setgid,            sys_setgid16),       // 46
-diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
-index dd13bda..045b9b9 100644
---- a/coregrind/m_syswrap/syswrap-arm64-linux.c
-+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
-@@ -956,6 +956,8 @@ static SyscallTableEntry syscall_main_table[] = {
-    GENXY(__NR_times,             sys_times),             // 153
-    GENX_(__NR_setpgid,           sys_setpgid),           // 154
-    GENX_(__NR_getpgid,           sys_getpgid),           // 155
-+   GENX_(__NR_getsid,            sys_getsid),            // 156
-+   GENX_(__NR_setsid,            sys_setsid),            // 157
-    GENXY(__NR_uname,             sys_newuname),          // 160
-    GENXY(__NR_getrlimit,         sys_old_getrlimit),     // 163
-    GENX_(__NR_setrlimit,         sys_setrlimit),         // 164
-@@ -1092,7 +1094,6 @@ static SyscallTableEntry syscall_main_table[] = {
- //ZZ    GENX_(__NR_getppid,           sys_getppid),        // 64
- //ZZ 
- //ZZ    GENX_(__NR_getpgrp,           sys_getpgrp),        // 65
--//ZZ    GENX_(__NR_setsid,            sys_setsid),         // 66
- //ZZ    LINXY(__NR_sigaction,         sys_sigaction),      // 67
- //ZZ //zz    //   (__NR_sgetmask,          sys_sgetmask),       // 68 */* (ANSI C)
- //ZZ //zz    //   (__NR_ssetmask,          sys_ssetmask),       // 69 */* (ANSI C)
-@@ -1176,7 +1177,6 @@ static SyscallTableEntry syscall_main_table[] = {
- //ZZ    GENX_(__NR_flock,             sys_flock),          // 143
- //ZZ    GENX_(__NR_msync,             sys_msync),          // 144
- //ZZ 
--//ZZ    GENX_(__NR_getsid,            sys_getsid),         // 147
- //ZZ    GENX_(__NR_fdatasync,         sys_fdatasync),      // 148
- //ZZ    LINXY(__NR__sysctl,           sys_sysctl),         // 149
- //ZZ 
-commit 92379dfe8ab904b8f7ecfa2a6c9094cf3cc2481d
-Author: sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>
-Date:   Thu Oct 30 13:54:24 2014 +0000
-
-    Bug 339940 - (arm64/aarch64) unhandled syscall: 83 (sys_fdatasync) + patch
-    Patch from David Abdurachmanov <davidlt@cern.ch>
-    
-    
-    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14675 a5019735-40e9-0310-863c-91ae7b9d1cf9
-
-diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
-index 045b9b9..69a997c 100644
---- a/coregrind/m_syswrap/syswrap-arm64-linux.c
-+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
-@@ -922,6 +922,7 @@ static SyscallTableEntry syscall_main_table[] = {
- 
-    LINX_(__NR_utimensat,         sys_utimensat),         // 88
-    GENX_(__NR_fsync,             sys_fsync),             // 82
-+   GENX_(__NR_fdatasync,         sys_fdatasync),         // 83
-    LINXY(__NR_timerfd_create,    sys_timerfd_create),    // 85
-    LINXY(__NR_timerfd_settime,   sys_timerfd_settime),   // 86
-    LINXY(__NR_timerfd_gettime,   sys_timerfd_gettime),   // 87
-@@ -1177,7 +1178,6 @@ static SyscallTableEntry syscall_main_table[] = {
- //ZZ    GENX_(__NR_flock,             sys_flock),          // 143
- //ZZ    GENX_(__NR_msync,             sys_msync),          // 144
- //ZZ 
--//ZZ    GENX_(__NR_fdatasync,         sys_fdatasync),      // 148
- //ZZ    LINXY(__NR__sysctl,           sys_sysctl),         // 149
- //ZZ 
- //ZZ    GENX_(__NR_munlock,           sys_munlock),        // 151
-
-commit 20a8d68dec8168d8a3df1b73f8128212344bcab0
-Author: sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>
-Date:   Thu Oct 30 14:11:32 2014 +0000
-
-    Bug 340028 - unhandled syscalls for arm64 (msync, pread64, setreuid
-    and setregid)
-    Patch from dimitry@google.com.
-    
-    
-    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14676 a5019735-40e9-0310-863c-91ae7b9d1cf9
-
-diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
-index 69a997c..d0fe78d 100644
---- a/coregrind/m_syswrap/syswrap-arm64-linux.c
-+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
-@@ -910,6 +910,7 @@ static SyscallTableEntry syscall_main_table[] = {
-    GENX_(__NR_write,             sys_write),             // 64
-    GENXY(__NR_readv,             sys_readv),             // 65
-    GENX_(__NR_writev,            sys_writev),            // 66
-+   GENXY(__NR_pread64,           sys_pread64),           // 67
-    GENX_(__NR_pwrite64,          sys_pwrite64),          // 68
-    LINX_(__NR_pselect6,          sys_pselect6),          // 72
-    LINXY(__NR_ppoll,             sys_ppoll),             // 73
-@@ -951,6 +952,8 @@ static SyscallTableEntry syscall_main_table[] = {
-    PLAX_(__NR_rt_sigreturn,      sys_rt_sigreturn),      // 139
-    GENX_(__NR_setpriority,       sys_setpriority),       // 140
-    GENX_(__NR_getpriority,       sys_getpriority),       // 141
-+   GENX_(__NR_setregid,          sys_setregid),          // 143
-+   GENX_(__NR_setreuid,          sys_setreuid),          // 145
-    LINX_(__NR_setresuid,         sys_setresuid),         // 147
-    LINXY(__NR_getresuid,         sys_getresuid),         // 148
-    LINXY(__NR_getresgid,         sys_getresgid),         // 150
-@@ -1017,6 +1020,7 @@ static SyscallTableEntry syscall_main_table[] = {
-    PLAX_(__NR3264_fadvise64,     sys_fadvise64),         // 223
- 
-    GENXY(__NR_mprotect,          sys_mprotect),          // 226
-+   GENX_(__NR_msync,             sys_msync),             // 227
-    GENX_(__NR_mlock,             sys_mlock),             // 228
-    GENX_(__NR_mlockall,          sys_mlockall),          // 230
-    GENX_(__NR_madvise,           sys_madvise),           // 233
-@@ -1099,8 +1103,6 @@ static SyscallTableEntry syscall_main_table[] = {
- //ZZ //zz    //   (__NR_sgetmask,          sys_sgetmask),       // 68 */* (ANSI C)
- //ZZ //zz    //   (__NR_ssetmask,          sys_ssetmask),       // 69 */* (ANSI C)
- //ZZ //zz 
--//ZZ    LINX_(__NR_setreuid,          sys_setreuid16),     // 70
--//ZZ    LINX_(__NR_setregid,          sys_setregid16),     // 71
- //ZZ    PLAX_(__NR_sigsuspend,        sys_sigsuspend),     // 72
- //ZZ    LINXY(__NR_sigpending,        sys_sigpending),     // 73
- //ZZ //zz    //   (__NR_sethostname,       sys_sethostname),    // 74 */*
-@@ -1176,7 +1178,6 @@ static SyscallTableEntry syscall_main_table[] = {
- //ZZ    GENXY(__NR_getdents,          sys_getdents),       // 141
- //ZZ    GENX_(__NR__newselect,        sys_select),         // 142
- //ZZ    GENX_(__NR_flock,             sys_flock),          // 143
--//ZZ    GENX_(__NR_msync,             sys_msync),          // 144
- //ZZ 
- //ZZ    LINXY(__NR__sysctl,           sys_sysctl),         // 149
- //ZZ 
-@@ -1207,7 +1208,6 @@ static SyscallTableEntry syscall_main_table[] = {
- //ZZ    LINXY(__NR_rt_sigpending,     sys_rt_sigpending),  // 176
- //ZZ    LINXY(__NR_rt_sigtimedwait,   sys_rt_sigtimedwait),// 177
- //ZZ 
--//ZZ    GENXY(__NR_pread64,           sys_pread64),        // 180
- //ZZ    LINX_(__NR_chown,             sys_chown16),        // 182
- //ZZ 
- //ZZ    LINX_(__NR_capset,            sys_capset),         // 185
-
-commit f78d99007454b34d0619cabc99c3f66613b05285
-Author: sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>
-Date:   Thu Oct 30 14:28:14 2014 +0000
-
-    Bug 340236 - 4 unhandled syscalls on aarch64/arm64:
-    mknodat (33), fchdir (50), chroot (51), fchownat (54)
-    Patch from Miroslav Franc (mfranc@redhat.com)
-    
-    
-    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14677 a5019735-40e9-0310-863c-91ae7b9d1cf9
-
-diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
-index d0fe78d..54238ed 100644
---- a/coregrind/m_syswrap/syswrap-arm64-linux.c
-+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
-@@ -880,6 +880,7 @@ static SyscallTableEntry syscall_main_table[] = {
-    LINX_(__NR_inotify_add_watch, sys_inotify_add_watch), // 27
-    LINX_(__NR_inotify_rm_watch,  sys_inotify_rm_watch),  // 28
-    LINXY(__NR_ioctl,             sys_ioctl),             // 29
-+   LINX_(__NR_mknodat,           sys_mknodat),           // 33
-    LINX_(__NR_mkdirat,           sys_mkdirat),           // 34
-    LINX_(__NR_unlinkat,          sys_unlinkat),          // 35
-    LINX_(__NR_symlinkat,         sys_symlinkat),         // 36
-@@ -896,7 +897,10 @@ static SyscallTableEntry syscall_main_table[] = {
-    LINX_(__NR_fallocate,         sys_fallocate),         // 47
-    LINX_(__NR_faccessat,         sys_faccessat),         // 48
-    GENX_(__NR_chdir,             sys_chdir),             // 49
-+   GENX_(__NR_fchdir,            sys_fchdir),            // 50
-+   GENX_(__NR_chroot,            sys_chroot),            // 51
-    LINX_(__NR_fchmodat,          sys_fchmodat),          // 53
-+   LINX_(__NR_fchownat,          sys_fchownat),          // 54
-    LINXY(__NR_openat,            sys_openat),            // 56
-    GENXY(__NR_close,             sys_close),             // 57
-    LINXY(__NR_pipe2,             sys_pipe2),             // 59
-@@ -1093,7 +1097,6 @@ static SyscallTableEntry syscall_main_table[] = {
- //ZZ //   GENX_(__NR_ulimit,            sys_ni_syscall),     // 58
- //ZZ //zz    //   (__NR_oldolduname,       sys_olduname),       // 59 Linux -- obsolete
- //ZZ //zz 
--//ZZ    GENX_(__NR_chroot,            sys_chroot),         // 61
- //ZZ //zz    //   (__NR_ustat,             sys_ustat)           // 62 SVr4 -- deprecated
- //ZZ    GENXY(__NR_dup2,              sys_dup2),           // 63
- //ZZ    GENX_(__NR_getppid,           sys_getppid),        // 64
-@@ -1165,7 +1168,6 @@ static SyscallTableEntry syscall_main_table[] = {
- //ZZ //zz    // Nb: get_kernel_syms() was removed 2.4-->2.6
- //ZZ //   GENX_(__NR_get_kernel_syms,   sys_ni_syscall),     // 130
- //ZZ    GENX_(__NR_getpgid,           sys_getpgid),        // 132
--//ZZ    GENX_(__NR_fchdir,            sys_fchdir),         // 133
- //ZZ //zz    //   (__NR_bdflush,           sys_bdflush),        // 134 */Linux
- //ZZ //zz 
- //ZZ //zz    //   (__NR_sysfs,             sys_sysfs),          // 135 SVr4
-@@ -1329,8 +1331,6 @@ static SyscallTableEntry syscall_main_table[] = {
- //ZZ    LINX_(__NR_inotify_init,    sys_inotify_init),   // 291
- //ZZ //   LINX_(__NR_migrate_pages,    sys_migrate_pages),    // 294
- //ZZ 
--//ZZ    LINX_(__NR_mknodat,       sys_mknodat),          // 297
--//ZZ    LINX_(__NR_fchownat,       sys_fchownat),         // 298
- //ZZ    LINX_(__NR_futimesat,    sys_futimesat),        // 326 on arm
- //ZZ 
- //ZZ    PLAXY(__NR_fstatat64,    sys_fstatat64),        // 300
-
-commit 076d5f343c3753ea0db86701f922b7c84a83ec38
-Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
-Date:   Tue Nov 4 13:43:21 2014 +0000
-
-    Bug 340630 arm64: fchmod (52) and fchown (55) syscalls not recognized.
-    
-    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14686 a5019735-40e9-0310-863c-91ae7b9d1cf9
-
-diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
-index 54238ed..f8a59c1 100644
---- a/coregrind/m_syswrap/syswrap-arm64-linux.c
-+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
-@@ -899,8 +899,10 @@ static SyscallTableEntry syscall_main_table[] = {
-    GENX_(__NR_chdir,             sys_chdir),             // 49
-    GENX_(__NR_fchdir,            sys_fchdir),            // 50
-    GENX_(__NR_chroot,            sys_chroot),            // 51
-+   GENX_(__NR_fchmod,            sys_fchmod),            // 52
-    LINX_(__NR_fchmodat,          sys_fchmodat),          // 53
-    LINX_(__NR_fchownat,          sys_fchownat),          // 54
-+   GENX_(__NR_fchown,            sys_fchown),            // 55
-    LINXY(__NR_openat,            sys_openat),            // 56
-    GENXY(__NR_close,             sys_close),             // 57
-    LINXY(__NR_pipe2,             sys_pipe2),             // 59
-@@ -1129,7 +1131,6 @@ static SyscallTableEntry syscall_main_table[] = {
- //ZZ    GENXY(__NR_munmap,            sys_munmap),         // 91
- //ZZ    GENX_(__NR_truncate,          sys_truncate),       // 92
- //ZZ    GENX_(__NR_ftruncate,         sys_ftruncate),      // 93
--//ZZ    GENX_(__NR_fchmod,            sys_fchmod),         // 94
- //ZZ 
- //ZZ    LINX_(__NR_fchown,            sys_fchown16),       // 95
- //ZZ //   GENX_(__NR_profil,            sys_ni_syscall),     // 98
-@@ -1237,7 +1238,6 @@ static SyscallTableEntry syscall_main_table[] = {
- //ZZ 
- //ZZ    GENXY(__NR_getgroups32,       sys_getgroups),      // 205
- //ZZ    GENX_(__NR_setgroups32,       sys_setgroups),      // 206
--//ZZ    GENX_(__NR_fchown32,          sys_fchown),         // 207
- //ZZ    LINX_(__NR_setresuid32,       sys_setresuid),      // 208
- //ZZ    LINXY(__NR_getresuid32,       sys_getresuid),      // 209
- //ZZ 
-commit 2562dd489ed5ff9d5eb73f7d2957eb3b2c5dc801
-Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
-Date:   Thu Nov 13 13:03:25 2014 +0000
-
-    Bug 340922 arm64: unhandled getgroups/setgroups syscalls.
-    
-    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14716 a5019735-40e9-0310-863c-91ae7b9d1cf9
-
-diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
-index 59e1cf6..cd27ad2 100644
---- a/coregrind/m_syswrap/syswrap-arm64-linux.c
-+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
-@@ -968,6 +968,8 @@ static SyscallTableEntry syscall_main_table[] = {
-    GENX_(__NR_getpgid,           sys_getpgid),           // 155
-    GENX_(__NR_getsid,            sys_getsid),            // 156
-    GENX_(__NR_setsid,            sys_setsid),            // 157
-+   GENXY(__NR_getgroups,         sys_getgroups),         // 158
-+   GENX_(__NR_setgroups,         sys_setgroups),         // 159
-    GENXY(__NR_uname,             sys_newuname),          // 160
-    GENXY(__NR_getrlimit,         sys_old_getrlimit),     // 163
-    GENX_(__NR_setrlimit,         sys_setrlimit),         // 164
-@@ -1237,8 +1239,6 @@ static SyscallTableEntry syscall_main_table[] = {
- //ZZ    GENX_(__NR_setreuid32,        sys_setreuid),       // 203
- //ZZ    GENX_(__NR_setregid32,        sys_setregid),       // 204
- //ZZ 
--//ZZ    GENXY(__NR_getgroups32,       sys_getgroups),      // 205
--//ZZ    GENX_(__NR_setgroups32,       sys_setgroups),      // 206
- //ZZ    LINX_(__NR_setresuid32,       sys_setresuid),      // 208
- //ZZ    LINXY(__NR_getresuid32,       sys_getresuid),      // 209
- //ZZ 
diff --git a/valgrind-3.10.0-fcvtmu.patch b/valgrind-3.10.0-fcvtmu.patch
deleted file mode 100644
index 617b088..0000000
--- a/valgrind-3.10.0-fcvtmu.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-commit 9a20b6daf975d94f24d8c2688eb0159c7e651ff6
-Author: sewardj <sewardj@8f6e269a-dfd6-0310-a8e1-e2731360e62c>
-Date:   Thu Oct 30 15:54:53 2014 +0000
-
-    Implement fcvtmu x_d.  Fixes #339927.
-    
-    
-    git-svn-id: svn://svn.valgrind.org/vex/trunk@2982 8f6e269a-dfd6-0310-a8e1-e2731360e62c
-
-diff --git a/VEX/priv/guest_arm64_toIR.c b/VEX/priv/guest_arm64_toIR.c
-index 0377139..23aea80 100644
---- a/VEX/priv/guest_arm64_toIR.c
-+++ b/VEX/priv/guest_arm64_toIR.c
-@@ -12241,6 +12241,7 @@ Bool dis_AdvSIMD_fp_to_from_int_conv(/*MB_OUT*/DisResult* dres, UInt insn)
-           || (iop == Iop_F64toI64S && irrm == Irrm_PosINF) /* FCVTPS Xd,Dn */
-           /* F64toI64U */
-           || (iop == Iop_F64toI64U && irrm == Irrm_ZERO)   /* FCVTZU Xd,Dn */
-+          || (iop == Iop_F64toI64U && irrm == Irrm_NegINF) /* FCVTMU Xd,Dn */
-           || (iop == Iop_F64toI64U && irrm == Irrm_PosINF) /* FCVTPU Xd,Dn */
-          ) {
-         /* validated */
diff --git a/valgrind-3.10.0-old-ppc32-instr-magic.patch b/valgrind-3.10.0-old-ppc32-instr-magic.patch
deleted file mode 100644
index 8252e33..0000000
--- a/valgrind-3.10.0-old-ppc32-instr-magic.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
-index adabf64..8f7e4aa 100644
---- a/VEX/priv/guest_ppc_toIR.c
-+++ b/VEX/priv/guest_ppc_toIR.c
-@@ -18783,10 +18783,26 @@ DisResult disInstr_PPC_WRK (
-       UInt word2 = mode64 ? 0x78006800 : 0x5400683E;
-       UInt word3 = mode64 ? 0x7800E802 : 0x5400E83E;
-       UInt word4 = mode64 ? 0x78009802 : 0x5400983E;
-+      Bool is_special_preamble = False;
-       if (getUIntPPCendianly(code+ 0) == word1 &&
-           getUIntPPCendianly(code+ 4) == word2 &&
-           getUIntPPCendianly(code+ 8) == word3 &&
-           getUIntPPCendianly(code+12) == word4) {
-+         is_special_preamble = True;
-+      } else if (! mode64 &&
-+                 getUIntPPCendianly(code+ 0) == 0x54001800 &&
-+                 getUIntPPCendianly(code+ 4) == 0x54006800 &&
-+                 getUIntPPCendianly(code+ 8) == 0x5400E800 &&
-+                 getUIntPPCendianly(code+12) == 0x54009800) {
-+         static Bool reported = False;
-+         if (!reported) {
-+            vex_printf("disInstr(ppc): old ppc32 instruction magic detected. Code might clobber r0.\n");
-+            vex_printf("disInstr(ppc): source needs to be recompiled against latest valgrind.h.\n");
-+            reported = True;
-+         }
-+         is_special_preamble = True;
-+      }
-+      if (is_special_preamble) {
-          /* Got a "Special" instruction preamble.  Which one is it? */
-          if (getUIntPPCendianly(code+16) == 0x7C210B78 /* or 1,1,1 */) {
-             /* %R3 = client_request ( %R4 ) */
diff --git a/valgrind.spec b/valgrind.spec
index 65e56b6..5852fa9 100644
--- a/valgrind.spec
+++ b/valgrind.spec
@@ -2,8 +2,8 @@
 
 Summary: Tool for finding memory management bugs in programs
 Name: %{?scl_prefix}valgrind
-Version: 3.10.0
-Release: 6%{?dist}
+Version: 3.10.1
+Release: 0.1.TEST1%{?dist}
 Epoch: 1
 License: GPLv2+
 URL: http://www.valgrind.org/
@@ -44,7 +44,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 %define _find_debuginfo_dwz_opts %{nil}
 %undefine _include_minidebuginfo
 
-Source0: http://www.valgrind.org/downloads/valgrind-%{version}.tar.bz2
+Source0: http://www.valgrind.org/downloads/valgrind-%{version}.TEST1.tar.bz2
 
 # Needs investigation and pushing upstream
 Patch1: valgrind-3.9.0-cachegrind-improvements.patch
@@ -58,32 +58,6 @@ Patch3: valgrind-3.9.0-stat_h.patch
 # Make ld.so supressions slightly less specific.
 Patch4: valgrind-3.9.0-ldso-supp.patch
 
-# Recognize and warn about usage of old (broken) ppc32 magic instr preamble.
-# https://bugs.kde.org/show_bug.cgi?id=278808#c6
-Patch5: valgrind-3.10.0-old-ppc32-instr-magic.patch
-
-# KDE#339853 arm64 times syscall unknown
-# KDE#339856 arm64 unhandled getsid/setsid syscalls.
-# KDE#339940 arm64 unhandled syscall: 83 (sys_fdatasync)
-# KDE#340028 unhandled syscalls for arm64 (msync, pread64, setreuid, setregid)
-# KDE#340236 arm64 mknodat (33), fchdir (50), chroot (51), fchownat (54)
-# KDE#340630 arm64 fchmod (52) and fchown (55) syscalls not recognized.
-# KDE#340922 arm64: unhandled getgroups/setgroups syscalls.
-Patch6: valgrind-3.10.0-aarch64-syscalls.patch
-
-# KDE#339858 arm64 recognize dmb sy. Data Memory Barrier full SYstem variant.
-Patch7: valgrind-3.10.0-aarch64-dmb-sy.patch
-
-# KDE#339926 Implement frintx d_d and s_s.
-Patch8: valgrind-3.10.0-aarch64-frint.patch
-
-# KDE#339927 Implement fcvtmu x_d.
-Patch9: valgrind-3.10.0-fcvtmu.patch
-
-# KDE#340509 Implement FCVTAS W_S and FCVTAU W_S.
-# KDE#340632 arm64: unhandled instruction fcvtas
-Patch10: valgrind-3.10.0-aarch64-fcvta.patch
-
 %if %{build_multilib}
 # Ensure glibc{,-devel} is installed for both multilib arches
 BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
@@ -180,18 +154,12 @@ See the section on Debugging MPI Parallel Programs with Valgrind in the
 Valgrind User Manual for details.
 
 %prep
-%setup -q -n %{?scl:%{pkg_name}}%{!?scl:%{name}}-%{version}
+%setup -q -n %{?scl:%{pkg_name}}%{!?scl:%{name}}-%{version}.TEST1
 
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch10 -p1
 
 %build
 # We need to use the software collection compiler and binutils if available.
@@ -340,6 +308,16 @@ echo ===============END TESTING===============
 %endif
 
 %changelog
+* Mon Nov 24 2014 Mark Wielaard <mjw@redhat.com> - 3.10.1-0.1.TEST1
+- Upgrade to valgrind 3.10.1.TEST1
+- Remove patches that are now upstream:
+  - valgrind-3.10.0-old-ppc32-instr-magic.patch
+  - valgrind-3.10.0-aarch64-syscalls.patch
+  - valgrind-3.10.0-aarch64-dmb-sy.patch
+  - valgrind-3.10.0-aarch64-frint.patch
+  - valgrind-3.10.0-fcvtmu.patch
+  - valgrind-3.10.0-aarch64-fcvta.patch
+
 * Wed Nov 19 2014 Mark Wielaard <mjw@redhat.com> - 3.10.0-6
 - Add getgroups/setgroups to valgrind-3.10.0-aarch64-syscalls.patch