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/JSVariableObject.cpp

    r34838 r34906  
    7171        return;
    7272   
    73     Register* end = d->registerArray + d->registerOffset;
    74     for (Register* it = d->registerArray; it != end; ++it) {
     73    Register* end = d->registerArray.get() + d->registerArraySize;
     74    for (Register* it = d->registerArray.get(); it != end; ++it) {
    7575        JSValue* v = (*it).u.jsValue;
    7676        if (!v->marked())
     
    9696void JSVariableObject::setRegisterArray(Register* registerArray, size_t count)
    9797{
    98     delete d->registerArray;
    99     d->registerArray = registerArray;
    100     d->registerBase = &d->registerArray;
    101     d->registerOffset = count;
     98    d->registerArray.set(registerArray);
     99    d->registerArraySize = count;
     100    d->registers = registerArray + count;
    102101}
    103102
Note: See TracChangeset for help on using the changeset viewer.