-
Notifications
You must be signed in to change notification settings - Fork 5
subset calling conventions for inline handlers pressure (wishfull thinking bias warning) #12
Comments
one more:
|
was too quick with conclusions, the reservation part is for things like overlay. The mentioned inline handlers even though can use only what is needed, they currently emit full push/pop wall when anything is called, as is the case in AVR8 for a long time. https://godbolt.org/z/nhdjh3Gqa trampoline interrupts: from a C function dispatch, back to inline handlers. Not sure about that. There is also issue of pure assembly handlers not knowing what dispatcher is preserving. Also the trampoline engine cannot reuse preserved registers for nesting, only different handlers/prorities at the same nesting level. |
It turns out that llvm already has something like this, hidden under |
Another one is to also "export" deterministic constants/values that are left in registers on return. |
read the Anders@IAR proposed document on ABI deviations [1]
and got impression that this is limited way to defacto standardize things like calling ILP32E code (with 16byte stack alignment) from UABI or RVE eabi from RVI eabi. (just a bit different and more possible deviations)I think that it is theoretically possible to implement a way to do a compile time ABI deviations (for static linking, or internal ones) with greater benefits.
or
ed clobbers of all possible calls)it is also possible to do such calls to pure assembly functions, using some inline asm, with current toolchains e.g.:
https://godbolt.org/z/5jTn11jYv
[1] - https://lists.riscv.org/g/tech-psabi/topic/eabi_deviations/92622595?p=,,,20,0,0,0::recentpostdate/sticky,,,20,2,0,92622595,previd%3D1658930318801721437,nextid%3D1644242986809326219&previd=1658930318801721437&nextid=1644242986809326219
The text was updated successfully, but these errors were encountered: