• kbr@chromium.org's avatar
    Added infrastructure for optimizing new CanvasArray types in WebGL · 46e6297e
    kbr@chromium.org authored
    specification under development. The optimizations are patterned after
    those previously done for CanvasPixelArray. This CL adds all of the
    necessary framework but continues to use the generic KeyedLoadIC and
    KeyedStoreIC code, to create a baseline for benchmarking purposes. The
    next CL will add the optimized ICs to ic-ia32.cc and ic-x64.cc.
    
    These new CanvasArray types have different semantics than
    CanvasPixelArray; out-of-range values are clamped via C cast
    semantics, which is cheaper than the clamping behavior specified by
    CanvasPixelArray. Out-of-range indices raise exceptions instead of
    being silently ignored.
    
    As part of this work, pulled FloatingPointHelper::AllocateHeapNumber
    up to MacroAssembler on ia32 and x64 platforms. Slightly refactored
    KeyedLoadIC and KeyedStoreIC. Fixed encoding for fistp_d on x64 and
    added a few more instructions that are needed for the new ICs. The
    test cases in test-api.cc have been verified by hand to exercise all
    of the generated code paths in the forthcoming specialized ICs.
    
    Review URL: http://codereview.chromium.org/293023
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    46e6297e
ic-arm.cc 27.2 KB