On 07/06/2015 01:42 PM, Pavel Dovgaluk wrote:
From: Richard Henderson [mailto:rth7...@gmail.com] On Behalf Of Richard 
Henderson
On 07/06/2015 09:26 AM, Pavel Dovgalyuk wrote:
@@ -1117,33 +1131,33 @@ void helper_fxsave(CPUX86State *env, target_ulong ptr, 
int data64)
       for (i = 0; i < 8; i++) {
           fptag |= (env->fptags[i] << i);
       }
-    cpu_stw_data(env, ptr, env->fpuc);
-    cpu_stw_data(env, ptr + 2, fpus);
-    cpu_stw_data(env, ptr + 4, fptag ^ 0xff);
+    cpu_stw_data_ra(env, ptr, env->fpuc, GETPC());
+    cpu_stw_data_ra(env, ptr + 2, fpus, GETPC());
+    cpu_stw_data_ra(env, ptr + 4, fptag ^ 0xff, GETPC());

helper_fxsave and helper_fxrstor ought to have do_* versions just like you did
for fstenv/fldenv.  (I'm working on a patch set that adds xsave/xrstor support
and I'll need to re-use these functions.)

Why do_* functions should be in this series?
These changes will look orphaned.

No they won't.  They'll be called by helper_fxsave.


r~


Reply via email to