This updates https://reviews.llvm.org/D120329 to the changed interface of
https://reviews.llvm.org/D120327.
In particular:
- We call udivmodei5 / divmodei5 instead of divei4,udivei4,modei4,umodei4 to avoid requiring dynamic allocation
- udivmodei5/divmodei5 take the number of words instead of number of bits as argument
- The argument 'a' needs to hold on extra word to allow for implementations that need that scratch space
What's the word size in bit? 16 or 32? Int looks double word size.