As reported by Alexandru, ARM follows a different convention than x86 so it needs __aeabi_ldivmod and __aeabi_uldivmod. Because it does not use __divdi3 and __moddi3, it also needs __divmoddi4 to build the eabi function upon. Paolo v1->v2: fix __divmoddi4, make sure -DTEST covers it Paolo Bonzini (2): libcflat: clean up and complete long division routines arm: add eabi version of 64-bit division functions arm/Makefile.arm | 1 + lib/arm/ldivmod.S | 32 ++++++++++++++++++++++++++++++++ lib/ldiv32.c | 40 ++++++++++++++++++++++++---------------- 3 files changed, 57 insertions(+), 16 deletions(-) create mode 100644 lib/arm/ldivmod.S -- 2.31.1