12. jan. 2011 03.47 skrev Kenneth Russell <[email protected]>: > V8 team, > > I'm trying to fix http://crbug.com/50972 , where the intrinsics I > added some time ago for Typed Arrays are using the wrong rounding > semantics. The associated inline caches are built into the snapshot, > and because the Serializer is active at the time the CPU features are > probed, in 32-bit mode the system thinks that there is neither SSE2 > nor SSE3 support when the ICs are being generated. My current fix only > works completely properly on SSE3 capable CPUs, and mostly properly > with SSE2.
We still support machines without SSE2 even though they are getting more rare. Machines without SSE3 are not rare and are of course also supported. All tests have to pass on SSE2 and SSE3-less machines. When a solution has been found for the older machines there is of course the issue of how to optimize on newer machines. > Is it possible to cause some of the builtins to be generated at run > time rather than into the snapshot? I realize that doing so could > negatively impact startup performance, but these ICs are small and > currently rarely used, so lazy generation would be appropriate. Builtins are generated in the snapshot, but it looks like this could be done with stubs instead of with builtins. In that case the support for SSE2 could be encoded into the minor key. That way new stubs would be generated after startup. The GenericBinaryOpStub does this for SSE3. > The CL in progress is at http://codereview.chromium.org/6158005 . I'd > appreciate any advice or feedback, especially on fixing the TODOs. We haven't until now tried the route of changing the fp flags. It is rumoured that this is a very slow operation. You have to restore them to whatever they were before of course. > IntegerConvert in code-stubs-ia32.cc seems overly complex as the > fallback for this particular use case, since these external array > types don't need to handle conversion failures. > > Thanks, > > -Ken > > -- > v8-dev mailing list > [email protected] > http://groups.google.com/group/v8-dev > -- Erik Corry, Software Engineer Google Denmark ApS - Frederiksborggade 20B, 1 sal, 1360 København K - Denmark - CVR nr. 28 86 69 84 -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
