Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #include<libc/asm.h>
  2. MK_C_SYM(setjmp)
  3.         pushl   %ebp
  4.         movl    %esp,%ebp
  5.  
  6.         pushl   %edi
  7.         movl    8(%ebp),%edi
  8.  
  9.         movl    %eax, (%edi)
  10.         movl    %ebx,4(%edi)
  11.         movl    %ecx,8(%edi)
  12.         movl    %edx,12(%edi)
  13.         movl    %esi,16(%edi)
  14.  
  15.         movl    -4(%ebp),%eax
  16.         movl    %eax,20(%edi)
  17.  
  18.         movl    (%ebp),%eax
  19.         movl    %eax,24(%edi)
  20.  
  21.         movl    %esp,%eax
  22.         addl    $12,%eax
  23.         movl    %eax,28(%edi)
  24.        
  25.         movl    4(%ebp),%eax
  26.         movl    %eax,32(%edi)
  27.  
  28.         pushfl
  29.         popl    36(%edi)
  30.  
  31.         movw    %cs, 40(%edi)
  32.         movw    %ds, 42(%edi)
  33.         movw    %es, 44(%edi)
  34.         movw    %fs, 46(%edi)
  35.         movw    %gs, 48(%edi)
  36.         movw    %ss, 50(%edi)
  37.        
  38.         movl    C_SYM(__djgpp_exception_state_ptr), %eax
  39.         movl    %eax, 60(%edi)
  40.  
  41.         popl    %edi
  42.         xorl    %eax,%eax
  43.         popl    %ebp
  44.         ret
  45.