Commit 070893f4252a9f3bb9aaf919780a104eb020605e
1 parent
9621339d
RedHat 9 fix
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@323 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
7 additions
and
2 deletions
tests/test-i386.c
| ... | ... | @@ -6,6 +6,7 @@ |
| 6 | 6 | #include <math.h> |
| 7 | 7 | #include <signal.h> |
| 8 | 8 | #include <setjmp.h> |
| 9 | +#include <errno.h> | |
| 9 | 10 | #include <sys/ucontext.h> |
| 10 | 11 | #include <sys/mman.h> |
| 11 | 12 | #include <asm/vm86.h> |
| ... | ... | @@ -855,7 +856,6 @@ void test_segs(void) |
| 855 | 856 | #endif |
| 856 | 857 | /* do some tests with fs or gs */ |
| 857 | 858 | asm volatile ("movl %0, %%fs" : : "r" (MK_SEL(1))); |
| 858 | - asm volatile ("movl %0, %%gs" : : "r" (MK_SEL(2))); | |
| 859 | 859 | |
| 860 | 860 | seg_data1[1] = 0xaa; |
| 861 | 861 | seg_data2[1] = 0x55; |
| ... | ... | @@ -863,7 +863,12 @@ void test_segs(void) |
| 863 | 863 | asm volatile ("fs movzbl 0x1, %0" : "=r" (res)); |
| 864 | 864 | printf("FS[1] = %02x\n", res); |
| 865 | 865 | |
| 866 | - asm volatile ("gs movzbl 0x1, %0" : "=r" (res)); | |
| 866 | + asm volatile ("pushl %%gs\n" | |
| 867 | + "movl %1, %%gs\n" | |
| 868 | + "gs movzbl 0x1, %0\n" | |
| 869 | + "popl %%gs\n" | |
| 870 | + : "=r" (res) | |
| 871 | + : "r" (MK_SEL(2))); | |
| 867 | 872 | printf("GS[1] = %02x\n", res); |
| 868 | 873 | |
| 869 | 874 | /* tests with ds/ss (implicit segment case) */ | ... | ... |