It turns out that I only needed to implement floating point multiplication, division and exponentiation and some comparison wrappers to be complete.
I've got a working float multiply function, but it's ugly and needs to be streamlined. I also need to check for boundary conditions (infinities and infinitesimals).
Mostly I need to reacquaint myself with this code. It's all written in twisty assembly since I wanted to maximize performance and minimize space. Unfortunately, it takes a while to understand how all the pieces fit together.
Doing all this in assembly may have been a mistake.