Ignore:
Timestamp:
Jun 30, 2011, 4:08:11 PM (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

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

    r90167 r90177  
     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        This adds specialised thunks for Math.abs, Math.round, Math.ceil,
     9        Math.floor, Math.log, and Math.exp as they are apparently more
     10        important in real web content than we thought, which is somewhat
     11        mind-boggling.  On average doubles the performance of the common
     12        cases (eg. actually passing numbers in).  They're not as efficient
     13        as they could be, but this way gives them the most portability.
     14
     15        * assembler/MacroAssemblerARM.h:
     16        (JSC::MacroAssemblerARM::supportsDoubleBitops):
     17        (JSC::MacroAssemblerARM::andnotDouble):
     18        * assembler/MacroAssemblerARMv7.h:
     19        (JSC::MacroAssemblerARMv7::supportsDoubleBitops):
     20        (JSC::MacroAssemblerARMv7::andnotDouble):
     21        * assembler/MacroAssemblerMIPS.h:
     22        (JSC::MacroAssemblerMIPS::andnotDouble):
     23        (JSC::MacroAssemblerMIPS::supportsDoubleBitops):
     24        * assembler/MacroAssemblerSH4.h:
     25        (JSC::MacroAssemblerSH4::supportsDoubleBitops):
     26        (JSC::MacroAssemblerSH4::andnotDouble):
     27        * assembler/MacroAssemblerX86.h:
     28        (JSC::MacroAssemblerX86::supportsDoubleBitops):
     29        * assembler/MacroAssemblerX86Common.h:
     30        (JSC::MacroAssemblerX86Common::andnotDouble):
     31        * assembler/MacroAssemblerX86_64.h:
     32        (JSC::MacroAssemblerX86_64::supportsDoubleBitops):
     33        * assembler/X86Assembler.h:
     34        (JSC::X86Assembler::andnpd_rr):
     35        * create_hash_table:
     36        * jit/SpecializedThunkJIT.h:
     37        (JSC::SpecializedThunkJIT::finalize):
     38        (JSC::SpecializedThunkJIT::callDoubleToDouble):
     39        * jit/ThunkGenerators.cpp:
     40        (JSC::floorThunkGenerator):
     41        (JSC::ceilThunkGenerator):
     42        (JSC::roundThunkGenerator):
     43        (JSC::expThunkGenerator):
     44        (JSC::logThunkGenerator):
     45        (JSC::absThunkGenerator):
     46        * jit/ThunkGenerators.h:
     47
    1482011-06-30  Cary Clark  <[email protected]>
    249
Note: See TracChangeset for help on using the changeset viewer.