The Transterpreter Project

Concurrency, everywhere.


Floating point is in da house

I have a backlog of things I can write about in this space, so I'll do my best to do a bit of catching up.

To start, Damian has been working on floating point for some time, and we now have full floating-point support in the runtime on large, little-endian targets. To be fair, the Transterpreter has always supported floating-point operations from day one. Unfortunately, it has carried out floating point operations in emulation. So, whenever the Transterpreter did floating point operations in the past, it would be emulating floating-point support and be doing all of the operations using integer maths at the interpreted level.

This was slow.

Words like molasses, glacial, and election reform come to mind as good words to describe the pace at which we used to carry out floating-point operations in the VM.

Now, due to Damian's efforts, we have full floating-point support in the VM. This was one of the few remaining parts of the instruction set that had not been implemented yet. Now, the floating-point instructions that were introduced in later generations of the Transputer (T8 and above, I think?) are supported natively by the runtime, and we don't have to go out for coffee every time we touch a number with a decimal point.



Metadata

  • Posted: February 21, 2007
  • Author: Matthew Jadud
  • Comments: None
  • Tags: None