View | Details | Raw Unified | Return to bug 202766 | Differences between
and this patch

Collapse All | Expand All

(-)devel/valgrind/files/patch-coregrind_m_syswrap_syswrap_amd64_freebsd_c (+30 lines)
Line 0 Link Here
1
--- coregrind/m_syswrap/syswrap-amd64-freebsd.c.orig	2015-01-26 16:17:32.000000000 -0400
2
+++ coregrind/m_syswrap/syswrap-amd64-freebsd.c	2015-08-31 09:51:17.506396000 -0300
3
@@ -691,6 +691,27 @@
4
       SET_STATUS_Success2( tst->arch.vex.guest_FS_ZERO, tst->arch.vex.guest_RDX );
5
       POST_MEM_WRITE( ARG2, sizeof(void *) );
6
       break;
7
+   case VKI_AMD64_GET_XFPUSTATE:
8
+      {
9
+      	UChar fpuState[160];
10
+      	struct vki_amd64_get_xfpustate *xfs = (struct vki_amd64_get_xfpustate *)ARG2;
11
+	int fpuSaveLen;
12
+      
13
+      	PRINT("sys_amd64_get_xfpustate ( %#lx, %d )", (long unsigned int)xfs->addr, xfs->len);
14
+      	tst = VG_(get_ThreadState)(tid);
15
+
16
+	if (xfs->len <= sizeof(fpuState)) {
17
+      		amd64g_dirtyhelper_FXSAVE_ALL_EXCEPT_XMM(
18
+		    (VexGuestAMD64State *)&tst->arch.vex,
19
+		    (HWord)fpuState);
20
+		VG_(memcpy)(xfs->addr, fpuState, xfs->len);
21
+      		POST_MEM_WRITE( xfs->addr, xfs->len );
22
+		SET_STATUS_Success ( 0 );
23
+	} else {
24
+		SET_STATUS_Failure( VKI_EINVAL );
25
+	}
26
+      }
27
+      break;
28
    default:
29
       VG_(message) (Vg_UserMsg, "unhandled sysarch cmd %ld", ARG1);
30
       VG_(unimplemented) ("unhandled sysarch cmd");
(-)devel/valgrind/files/patch-include__vki__vki-freebsd.h (-3 / +27 lines)
Lines 1-6 Link Here
1
--- ./include/vki/vki-freebsd.h.orig	2014-02-08 15:00:31.591069799 -0600
1
--- include/vki/vki-freebsd.h.orig	2015-01-26 16:17:32.000000000 -0400
2
+++ ./include/vki/vki-freebsd.h	2014-02-08 15:00:39.993068845 -0600
2
+++ include/vki/vki-freebsd.h	2015-08-31 04:55:29.139189000 -0300
3
@@ -681,6 +681,7 @@
3
@@ -684,6 +684,7 @@
4
 
4
 
5
 #define VKI_SOCK_STREAM	1
5
 #define VKI_SOCK_STREAM	1
6
 
6
 
Lines 8-10 Link Here
8
 #include <netinet/tcp.h>
8
 #include <netinet/tcp.h>
9
 
9
 
10
 #define VKI_TCP_NODELAY  TCP_NODELAY
10
 #define VKI_TCP_NODELAY  TCP_NODELAY
11
@@ -1888,11 +1889,23 @@
12
 #define VKI_I386_SET_FSBASE     8
13
 #define VKI_I386_GET_GSBASE     9
14
 #define VKI_I386_SET_GSBASE     10
15
+#define VKI_I386_SET_XFPUSTATE	11
16
 
17
 #define VKI_AMD64_GET_FSBASE    128
18
 #define VKI_AMD64_SET_FSBASE    129
19
 #define VKI_AMD64_GET_GSBASE    130
20
 #define VKI_AMD64_SET_GSBASE    131
21
+#define	VKI_AMD64_GET_XFPUSTATE	132
22
+
23
+typedef struct vki_i386_get_xfpustate {
24
+	unsigned int addr;
25
+	int len;
26
+};
27
+
28
+typedef struct vki_amd64_get_xfpustate {
29
+	void *addr;
30
+	int len;
31
+};
32
 
33
 //----------------------------------------------------------------------
34
 // From sys/module.h

Return to bug 202766