There is provided a method for executing a program comprising a function
call and one or more subsequent instructions. The method comprises
processing, on a first thread, a function defined by the function call,
the function having one or more programmer predefined typical return
values. For each predefined return value, the one or more subsequent
instructions are pre-processed on an additional thread assuming that the
function returned that pre-defined return value. In this way the
processor, on completion of processing said function is able to make use
of the pre-processing completed by the additional thread which used the
actual return value.