From: George H. <geo...@us...> - 2011-05-27 20:35:57
|
Update of /cvsroot/win32forth/win32forth/src In directory vz-cvs-4.sog:/tmp/cvs-serv28127 Modified Files: CALLBACK.f Log Message: Modified not to overwrite User Area on async callbacks Index: CALLBACK.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/CALLBACK.f,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** CALLBACK.f 25 May 2011 20:48:54 -0000 1.14 --- CALLBACK.f 27 May 2011 20:35:54 -0000 1.15 *************** *** 72,92 **** xor edi, edi \ edi is constant 0 mov edx, fs: 0x14 \ edx is now ptr TIB pvArbitrary ! test edx, edx jnz L$1 - push # 0 - mov ebp, esp - sub esp, # 4096 32 - \ room for return stack (Not RSTACKSIZE, please!) - and esp, # -16 \ align to 16 byte boundary - \ mov ebx, 0 [esp] - sub esp, # 4096 \ room for USER area mov edx, esp mov fs: 0x14 , edx - sub esp, # 32 - jmp L$2 L$1: push SP0 [UP] \ save sp0 on stack mov ebp, esp ! sub esp, # 4096 32 - \ room for return stack (Not RSTACKSIZE, please!) and esp, # -16 \ align to 16 byte boundary ! L$2: mov SP0 [UP] , esp \ reset SP0 lea ebx, 7 19 - cells [ebp] [ecx*4] \ adjust ebx neg ecx \ negate ecx --- 72,89 ---- xor edi, edi \ edi is constant 0 mov edx, fs: 0x14 \ edx is now ptr TIB pvArbitrary ! test edx, edx \ test for async callback jnz L$1 mov edx, esp + sub edx, # 8164 + and edx, # -16 mov fs: 0x14 , edx L$1: push SP0 [UP] \ save sp0 on stack mov ebp, esp ! mov -4092 [esp] , # 0 ! sub esp, # 4096 \ room for return stack (Not RSTACKSIZE, please!) ! mov -4092 [esp] , # 0 ! sub esp, # 4096 \ make sure we don't overwrite user area for async. and esp, # -16 \ align to 16 byte boundary ! mov SP0 [UP] , esp \ reset SP0 lea ebx, 7 19 - cells [ebp] [ecx*4] \ adjust ebx neg ecx \ negate ecx |