Code on a K60FN1M0 behaves very strangely unless I turn off the vfpv4 option in IAR General Options.
walking it thorugh, I came across a strange thing where a float variable was held in S16, and the thread called _time_delay(n). When it came back, the value in S16 was lost.
My user config has FP config turned on
So I presumed FP registers would be preserved.