Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 443 → Rev 442

/shark/trunk/oslib/xlib/exc.s
28,9 → 28,6
#include <ll/i386/defs.h>
 
.extern SYMBOL_NAME(GDT_base)
.extern SYMBOL_NAME(global_regs)
.extern SYMBOL_NAME(VM86_ret_ctx)
 
.data
 
ASMFILE(Exc)
43,7 → 40,6
 
.extern SYMBOL_NAME(ll_exc_hook)
.extern SYMBOL_NAME(ll_FPU_hook)
.extern SYMBOL_NAME(vm86_return)
 
.globl SYMBOL_NAME(h13_bis)
.globl SYMBOL_NAME(exc7)
125,7 → 121,7
INT_1(70)
INT_1(71)
 
VM86(72)
INT(72)
INT(73)
INT(74)
INT(75)
581,54 → 577,9
popal
iret
 
ll_handler_vm86:
pushl %ds
pushl %ss
pushl %es
pushl %fs
pushl %gs
 
pushl %eax
 
movw $(X_FLATDATA_SEL),%ax
movw %ax,%es
mov %ax,%ds
movw %ax,%fs
movw %ax,%gs
 
popl %eax
pushl %ebx
 
movl SYMBOL_NAME(global_regs),%ebx
movl %eax,56(%ebx)
movl %ecx,52(%ebx)
movl %edx,48(%ebx)
movl %edi,28(%ebx)
movl %esi,32(%ebx)
 
movl %ebx,%edi
popl %ebx
movl %ebx,44(%edi)
 
pushfl
popl %ebx
movl %ebx,68(%edi)
 
#ifdef __VIRCSW__
movw SYMBOL_NAME(VM86_ret_ctx), %ax
movw %ax,JmpSel
ljmp *JmpZone
#endif
 
popl %gs
popl %fs
popl %es
popl %ss
popl %ds
popal
iret
 
 
/* OK, this is Exception 7, and it is generated when an ESC or WAIT
* intruction is reached, and the MP and TS bits are set... Basically,
* it means that the FPU context must be switched
651,4 → 602,3
popl %ds
popal
iret