version 1.1 | | version 1.2 |
---|
| | |
| | |
extern __inline__ void _farpokex (unsigned short selector, unsigned long offset, void *x, int len) | | extern __inline__ void _farpokex (unsigned short selector, unsigned long offset, void *x, int len) |
{ | | { |
| | int dummy1, dummy2, dummy3; |
| | |
__asm__ __volatile__ ("pushl %%es\n" | | __asm__ __volatile__ ("pushl %%es\n" |
"movw %w0, %%es\n" | | "movw %w3, %%es\n" |
"rep\n" | | "rep\n" |
"movsb\n" | | "movsb\n" |
"popl %%es" | | "popl %%es" |
: | | |
: "rm" (selector), "S" (x), "D" (offset), "c" (len) | | : "=c" (dummy1), "=S" (dummy2), "=D" (dummy3) |
: "%ecx", "%edi", "%esi"); | | : "rm" (selector), "1" (x), "2" (offset), "0" (len)); |
} | | } |
| | |
extern __inline__ void _farpeekx (unsigned short selector, unsigned long offset, void *x, int len) | | extern __inline__ void _farpeekx (unsigned short selector, unsigned long offset, void *x, int len) |
{ | | { |
| | int dummy1, dummy2, dummy3; |
| | |
__asm__ __volatile__ ("pushl %%ds\n" | | __asm__ __volatile__ ("pushl %%ds\n" |
"movw %w0,%%ds\n" | | "movw %w3,%%ds\n" |
"rep\n" | | "rep\n" |
"movsb\n" | | "movsb\n" |
"popl %%ds" | | "popl %%ds" |
: | | : "=c" (dummy1), "=S" (dummy2), "=D" (dummy3) |
: "rm" (selector), "S" (offset), "D" (x), "c" (len) | | : "rm" (selector), "1" (offset), "2" (x), "0" (len)); |
: "%ecx", "%edi", "%esi"); | | |
} | | } |
| | |
#endif | | #endif |