Ignore:
Timestamp:
Jul 1, 2011, 9:33:46 AM (14 years ago)
Author:
[email protected]
Message:

2011-06-30 Oliver Hunt <[email protected]>

Reviewed by Gavin Barraclough.

Add optimised paths for a few maths functions
https://bugs.webkit.org/show_bug.cgi?id=63757

Relanding as a Mac only patch.

This adds specialised thunks for Math.abs, Math.round, Math.ceil,
Math.floor, Math.log, and Math.exp as they are apparently more
important in real web content than we thought, which is somewhat
mind-boggling. On average doubles the performance of the common
cases (eg. actually passing numbers in). They're not as efficient
as they could be, but this way gives them the most portability.

  • assembler/MacroAssemblerARM.h: (JSC::MacroAssemblerARM::supportsDoubleBitops): (JSC::MacroAssemblerARM::andnotDouble):
  • assembler/MacroAssemblerARMv7.h: (JSC::MacroAssemblerARMv7::supportsDoubleBitops): (JSC::MacroAssemblerARMv7::andnotDouble):
  • assembler/MacroAssemblerMIPS.h: (JSC::MacroAssemblerMIPS::andnotDouble): (JSC::MacroAssemblerMIPS::supportsDoubleBitops):
  • assembler/MacroAssemblerSH4.h: (JSC::MacroAssemblerSH4::supportsDoubleBitops): (JSC::MacroAssemblerSH4::andnotDouble):
  • assembler/MacroAssemblerX86.h: (JSC::MacroAssemblerX86::supportsDoubleBitops):
  • assembler/MacroAssemblerX86Common.h: (JSC::MacroAssemblerX86Common::andnotDouble):
  • assembler/MacroAssemblerX86_64.h: (JSC::MacroAssemblerX86_64::supportsDoubleBitops):
  • assembler/X86Assembler.h: (JSC::X86Assembler::andnpd_rr):
  • create_hash_table:
  • jit/SpecializedThunkJIT.h: (JSC::SpecializedThunkJIT::finalize): (JSC::SpecializedThunkJIT::callDoubleToDouble):
  • jit/ThunkGenerators.cpp: (JSC::floorThunkGenerator): (JSC::ceilThunkGenerator): (JSC::roundThunkGenerator): (JSC::expThunkGenerator): (JSC::logThunkGenerator): (JSC::absThunkGenerator):
  • jit/ThunkGenerators.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r90232 r90237  
     12011-06-30  Oliver Hunt  <[email protected]>
     2
     3        Reviewed by Gavin Barraclough.
     4
     5        Add optimised paths for a few maths functions
     6        https://bugs.webkit.org/show_bug.cgi?id=63757
     7
     8        Relanding as a Mac only patch.
     9
     10        This adds specialised thunks for Math.abs, Math.round, Math.ceil,
     11        Math.floor, Math.log, and Math.exp as they are apparently more
     12        important in real web content than we thought, which is somewhat
     13        mind-boggling.  On average doubles the performance of the common
     14        cases (eg. actually passing numbers in).  They're not as efficient
     15        as they could be, but this way gives them the most portability.
     16
     17        * assembler/MacroAssemblerARM.h:
     18        (JSC::MacroAssemblerARM::supportsDoubleBitops):
     19        (JSC::MacroAssemblerARM::andnotDouble):
     20        * assembler/MacroAssemblerARMv7.h:
     21        (JSC::MacroAssemblerARMv7::supportsDoubleBitops):
     22        (JSC::MacroAssemblerARMv7::andnotDouble):
     23        * assembler/MacroAssemblerMIPS.h:
     24        (JSC::MacroAssemblerMIPS::andnotDouble):
     25        (JSC::MacroAssemblerMIPS::supportsDoubleBitops):
     26        * assembler/MacroAssemblerSH4.h:
     27        (JSC::MacroAssemblerSH4::supportsDoubleBitops):
     28        (JSC::MacroAssemblerSH4::andnotDouble):
     29        * assembler/MacroAssemblerX86.h:
     30        (JSC::MacroAssemblerX86::supportsDoubleBitops):
     31        * assembler/MacroAssemblerX86Common.h:
     32        (JSC::MacroAssemblerX86Common::andnotDouble):
     33        * assembler/MacroAssemblerX86_64.h:
     34        (JSC::MacroAssemblerX86_64::supportsDoubleBitops):
     35        * assembler/X86Assembler.h:
     36        (JSC::X86Assembler::andnpd_rr):
     37        * create_hash_table:
     38        * jit/SpecializedThunkJIT.h:
     39        (JSC::SpecializedThunkJIT::finalize):
     40        (JSC::SpecializedThunkJIT::callDoubleToDouble):
     41        * jit/ThunkGenerators.cpp:
     42        (JSC::floorThunkGenerator):
     43        (JSC::ceilThunkGenerator):
     44        (JSC::roundThunkGenerator):
     45        (JSC::expThunkGenerator):
     46        (JSC::logThunkGenerator):
     47        (JSC::absThunkGenerator):
     48        * jit/ThunkGenerators.h:
     49
    1502011-07-01  David Kilzer  <[email protected]>
    251
Note: See TracChangeset for help on using the changeset viewer.