| ... | @@ -13,6 +13,11 @@ pub const stack_bias = 2047; | ... | @@ -13,6 +13,11 @@ pub const stack_bias = 2047; |
| 13 | // The first 128 bytes of the stack is reserved for register saving purposes. | 13 | // The first 128 bytes of the stack is reserved for register saving purposes. |
| 14 | // The ABI also requires to reserve space in the stack for the first six | 14 | // The ABI also requires to reserve space in the stack for the first six |
| 15 | // outgoing arguments, even though they are usually passed in registers. | 15 | // outgoing arguments, even though they are usually passed in registers. |
| | 16 | // TODO Don't allocate the argument space in leaf functions |
| | 17 | // TODO Save an RO copy of outgoing arguments in reserved area when building in Debug |
| | 18 | // TODO Should we also save it in ReleaseSafe? Solaris and OpenBSD binaries seem to ship |
| | 19 | // with argument copying enabled and it doesn't seem to give them big slowdowns so |
| | 20 | // I guess it would be okay to do in ReleaseSafe? |
| 16 | pub const stack_reserved_area = 128 + 48; | 21 | pub const stack_reserved_area = 128 + 48; |
| 17 | | 22 | |
| 18 | // There are no callee-preserved registers since the windowing | 23 | // There are no callee-preserved registers since the windowing |