I needed to do some 64-bit integer math for a project I'm doing. I looked around and found a paper that describes a method sort of like long division and has some source in Pascal. The paper is "Multiple-length Division Revisited: a Tour of the Minefield" by Brinch Hansen, June 1994. Here is a link to the paper: http://brinch-hansen.net/papers/1994b.pdf. The problem is, the calcs I need to make took about 500ms.
Next I took to assembly code from AN1219, "M68HC08 Integer Math Routines" (http://www.freescale.com/files/microcontrollers/doc/app_note/AN1219.pdf?fsrch=1). This has a 32-bit by 16-bit divide that I ported to inline assembly. I extrapolated that code to produce a 64-bit by 32-bit divide. There are some multiply and right shift routines there as well. With this version of code, I was able to do the same calcs in 16.9ms (better).
It's not the pretties code but I hope others might find the attached code useful.