I was wondering why a separate FPU, ie X_87 was necessary.

As all numbers ARE Integers; you just take the decimal out and put it back in at the end of the integer op.

The numbers have to be padded with zeros left and right of the decimal so both int's and dec's are the same length.

After that you just take the decimal out and proceed with the integer function , and then stick the decimal in at the end.

A micro-code prep instruction could allow for floating point operations to be done in the same clock-ticks as integer math.

So it might take a few extra clock-ticks to pad the numbers for integer math and a reg to hold the ending decimal place.