David P Grove wrote:
>
> Hi,
>
> SSE2 exploitation has been implemented for Jikes RVM and we're
> contemplating completely removing all of the old 387 based FP support.
> In other words, Jikes RVM on IA32 would require SSE2 and would not
> run on older (pre 2001 for Intel, 2003 for AMD) IA32 implementations.
> Is there anyone who is tracking the current versions of Jikes RVM
> and needs to run on non-SSE2 capable hardware? If so, please let us
> know.
It's probably worth listing some processors and their SSE capabilites [1]:
Intel CPUs:
Pentium, Pentium Pro, Pentium 2, Celeron: no SSE
Pentium 3, Celeron-II: SSE1
Pentium 4/M, Celeron D/M, Core, Core2: SSE2+
AMD CPUs:
K6, Duron, Athlon: no SSE
Sempron: SSE1
Opteron: SSE2
Athlon 64, Sempron, Turion: SSE3
Most Via CPUs have SSE2 and SSE3
Most Cyrix CPUs don't
Transmeta Efficeon processors have SSE2, not sure for Crusoe
> The current plan is most likely to make a 2.9.1 release that
> has SSE2 as the default, but still has unoptimized 387 FP as a
> build-time option. After the 2.9.1 release we would remove 387 FP
> entirely unless people are really still depending on it.
If SSE1 is interesting we could generate SSE1 instructions for floats
and x87 instructions for doubles. For float to integer casts it would be
nice to use SSE3 when available. There are a number of situations when
only x87 will do:
floating point remainders
float/double to 64bit long
>64bit precision
floating point math intrinsics (sin, cos, ...)
I'm sure there are more. For my needs I do require >64bit precision on
occasions, for example some times when emulating PowerPC's >64bit
internal precision.
I'm sure people can add to/correct what I've said. Regards,
Ian
[1] http://en.wikipedia.org/wiki/Category:X86_microprocessors
|