Ignore:
Timestamp:
Jun 30, 2008, 10:45:21 PM (17 years ago)
Author:
[email protected]
Message:

2008-06-30 Geoffrey Garen <[email protected]>

Reviewed by Oliver Hunt.


Removed the "registerBase" abstraction. Since the register file never
reallocates, we can keep direct pointers into it, instead of
<registerBase, offset> tuples.


SunSpider says 0.8% faster.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/JSGlobalObject.cpp

    r34876 r34906  
    395395{
    396396    ASSERT(!d()->registerArray);
     397    ASSERT(!d()->registerArraySize);
    397398
    398399    int numGlobals = registerFile.numGlobals();
    399400    if (!numGlobals) {
    400         ASSERT(!d()->registerOffset);
    401         d()->registerBase = 0;
     401        d()->registers = 0;
    402402        return;
    403403    }
     
    415415
    416416    if (d()->registerArray) {
    417         memcpy(*registerFile.basePointer() - d()->registerOffset, d()->registerArray, d()->registerOffset * sizeof(Register));
     417        memcpy(registerFile.base() - d()->registerArraySize, d()->registerArray.get(), d()->registerArraySize * sizeof(Register));
    418418        setRegisterArray(0, 0);
    419419    }
    420420
    421     d()->registerBase = registerFile.basePointer();
    422     d()->registerOffset = 0;
     421    d()->registers = registerFile.base();
    423422}
    424423
Note: See TracChangeset for help on using the changeset viewer.