I disassembled some C++ code with the avr-gcc compiler in godbolt and often found calls to libgcc subroutines like __udivmodhi4 or __mulhi3.
Where can I find good and insightful documentation about those subroutines?
I tried to find any good documentation about those subroutines but could not find any.
The only (kind of) useful thing I found was the plain implementation of those subroutines in the libgcc avr config files.
avrtest. Though a simulation only gives a lower bound of WCET (worst code execution time), not some upper bound as requires by safety critical apps. Simulating all inputs is only feasible when all inputs together fit in, say, 32 bits. But then there are still IRQs that add to WCET.avrtestis niche, but is is fast and has features to get cycle count, and it can get information out of a target without printf etc.