diff options
author | alex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-11-24 22:39:03 +0000 |
---|---|---|
committer | alex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-11-24 22:39:03 +0000 |
commit | c35ebe6c3fefc179802499f69a219d3a9efadb8a (patch) | |
tree | fbbec5cb21be52be2ce12477a604d7a0d7b1c7fa /osdep | |
parent | e1959e4e1a8a8f107c7d8a1afdb5ad1702e78e97 (diff) | |
download | mpv-c35ebe6c3fefc179802499f69a219d3a9efadb8a.tar.bz2 mpv-c35ebe6c3fefc179802499f69a219d3a9efadb8a.tar.xz |
Save fs before calling vm86, this might eleminate bugs (if there were any) in cooperation of using vesa with win32 dlls. Patch by Peter Kosinar <goober@ksp.sk>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11520 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'osdep')
-rw-r--r-- | osdep/lrmi.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/osdep/lrmi.c b/osdep/lrmi.c index c04a470f75..8df2cdc3a1 100644 --- a/osdep/lrmi.c +++ b/osdep/lrmi.c @@ -794,14 +794,16 @@ run_vm86(void) { unsigned int vret; sigset_t allsigs, cursigs; - unsigned long oldgs; + unsigned long oldgs, oldfs; while (1) { sigfillset(&allsigs); sigprocmask(SIG_SETMASK, &allsigs, &cursigs); asm volatile ("movl %%gs, %0" : "=g" (oldgs)); + asm volatile ("movl %%fs, %0" : "=g" (oldfs)); vret = lrmi_vm86(&context.vm); + asm volatile ("movl %0, %%fs" :: "g" (oldfs)); asm volatile ("movl %0, %%gs" :: "g" (oldgs)); sigprocmask(SIG_SETMASK, &cursigs, NULL); |