home *** CD-ROM | disk | FTP | other *** search
/ Zodiac Super OZ / MEDIADEPOT.ISO / FILES / 13 / DJCRX201.ZIP / include / libc / asmdefs.h < prev    next >
C/C++ Source or Header  |  1995-04-28  |  1KB  |  52 lines

  1. /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
  2. #ifndef __dj_include_libc_asmdefs_h__
  3. #define __dj_include_libc_asmdefs_h__
  4.  
  5.     .file    __BASE_FILE__
  6.  
  7. #ifdef USE_EBX
  8. #define PUSHL_EBX    pushl %ebx;
  9. #define POPL_EBX    popl %ebx;
  10. #else
  11. #define PUSHL_EBX    
  12. #define POPL_EBX    
  13. #endif
  14.  
  15. #ifdef USE_ESI
  16. #define PUSHL_ESI    pushl %esi;
  17. #define POPL_ESI    popl %esi;
  18. #else
  19. #define PUSHL_ESI    
  20. #define POPL_ESI    
  21. #endif
  22.  
  23. #ifdef USE_EDI
  24. #define PUSHL_EDI    pushl %edi;
  25. #define POPL_EDI    popl %edi;
  26. #else
  27. #define PUSHL_EDI    
  28. #define POPL_EDI    
  29. #endif
  30.  
  31. #define FUNC(x)        .globl x; x:
  32.  
  33. #define ENTER        pushl %ebp; movl %esp,%ebp; PUSHL_EBX PUSHL_ESI PUSHL_EDI
  34.  
  35. #define LEAVE        L_leave: POPL_EDI POPL_ESI POPL_EBX movl %ebp,%esp; popl %ebp; ret
  36. #define LEAVEP(x)    L_leave: x; POPL_EDI POPL_ESI POPL_EBX movl %ebp,%esp; popl %ebp; ret
  37.  
  38. #define RET        jmp L_leave
  39.  
  40. #define ARG1        8(%ebp)
  41. #define ARG1h        10(%ebp)
  42. #define ARG2        12(%ebp)
  43. #define ARG2h        14(%ebp)
  44. #define ARG3        16(%ebp)
  45. #define ARG4        20(%ebp)
  46. #define ARG5        24(%ebp)
  47. #define ARG6        28(%ebp)
  48. #define ARG7        32(%ebp)
  49. #define ARG8        36(%ebp)
  50.  
  51. #endif /* __dj_include_libc_asmdefs_h__ */
  52.