Changeset 37995 in webkit for trunk/JavaScriptCore/VM/Machine.h


Ignore:
Timestamp:
Oct 30, 2008, 2:35:24 AM (17 years ago)
Author:
[email protected]
Message:

2008-10-30 Alp Toker <[email protected]>

Reviewed by Alexey Proskuryakov.

https://bugs.webkit.org/show_bug.cgi?id=21571
VoidPtrPair breaks CTI on Linux

The VoidPtrPair return change made in r37457 does not work on Linux
since POD structs aren't passed in registers.

This patch uses a union to vectorize VoidPtrPair to a uint64_t and
matches Darwin/MSVC fixing CTI/WREC on Linux.

Alexey reports no measurable change in Mac performance with this fix.

  • VM/Machine.cpp: (JSC::Machine::cti_op_call_JSFunction): (JSC::Machine::cti_op_construct_JSConstruct): (JSC::Machine::cti_op_resolve_func): (JSC::Machine::cti_op_post_inc): (JSC::Machine::cti_op_resolve_with_base): (JSC::Machine::cti_op_post_dec):
  • VM/Machine.h: (JSC::):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/VM/Machine.h

    r37991 r37995  
    8282#endif
    8383
    84     struct VoidPtrPair { void* first; void* second; };
     84    typedef uint64_t VoidPtrPair;
     85
     86    typedef union
     87    {
     88        struct { void* first; void* second; };
     89        VoidPtrPair i;
     90    } VoidPtrPairValue;
    8591#endif
    8692
Note: See TracChangeset for help on using the changeset viewer.