Rev 5195 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5195 | clevermous | 1 | ; Magic for proc32.inc: prologue/epilogue for esp-based addressing |
2 | ; fpo stands from Frame Pointer Omission |
||
3 | macro fpo_prologue procname,flag,parmbytes,localbytes,reglist |
||
4 | { |
||
5 | local loc,regcount |
||
6 | loc = (localbytes+3) and (not 3) |
||
7 | regcount = 0 |
||
8 | irps reg, reglist |
||
9 | \{ |
||
10 | regcount = regcount+1 |
||
11 | push reg |
||
12 | \} |
||
6614 | clevermous | 13 | if loc |
14 | sub esp, loc |
||
15 | end if |
||
16 | parmbase@proc equ esp+4+loc+regcount*4 |
||
17 | localbase@proc equ esp |
||
18 | fpo_localsize = loc |
||
5195 | clevermous | 19 | } |
20 | macro fpo_epilogue procname,flag,parmbytes,localbytes,reglist |
||
21 | { |
||
22 | irps reg, reglist \{ reverse pop reg \} |
||
23 | if flag and 10000b |
||
24 | retn |
||
25 | else |
||
26 | retn parmbytes |
||
27 | end if |
||
28 | } |