Ignore:
Timestamp:
Jun 4, 2008, 10:36:55 PM (17 years ago)
Author:
[email protected]
Message:

2008-06-04 Sam Weinig <[email protected]>

Reviewed by Maciej Stachowiak.

Big cleanup of formatting and whitespace.

File:
1 edited

Legend:

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

    r34069 r34372  
    2626 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2727 */
    28  
     28
    2929#ifndef RegisterFile_h
    3030#define RegisterFile_h
     
    4040    frame by its offset from "base", the logical first entry in the register
    4141    file. The bottom-most register frame's offset from base is 0.
    42    
     42
    4343    In a program where function "a" calls function "b" (global code -> a -> b),
    4444    the register file might look like this:
     
    5454       |              |                   |                                       |
    5555     buffer    base (frame 0)          frame 1                                 frame 2
    56      
     56
    5757    Since all variables, including globals, are accessed by negative offsets
    5858    from their register frame pointers, to keep old global offsets correct, new
    5959    globals must appear at the beginning of the register file, shifting base
    6060    to the right.
    61    
     61
    6262    If we added one global variable to the register file depicted above, it
    6363    would look like this:
     
    7070    ------------------------------->                                                                    <
    7171    |         <-globals | temps-> |
    72        ^                   ^       
    73        |                   |       
     72       ^                   ^
     73       |                   |
    7474     buffer         base (frame 0)
    7575
     
    7878    clients keep an indirect pointer, so their calculations update
    7979    automatically when base changes.
    80    
     80
    8181    For client simplicity, the RegisterFile measures size and capacity from
    8282    "base", not "buffer".
     
    8484
    8585    class RegisterFileStack;
    86    
     86
    8787    class RegisterFile : Noncopyable {
    8888    public:
    8989        enum { DefaultRegisterFileSize = 2 * 1024 * 1024 };
     90
    9091        RegisterFile(size_t maxSize, RegisterFileStack* m_baseObserver)
    9192            : m_safeForReentry(true)
     
    9899        {
    99100        }
    100        
     101
    101102        ~RegisterFile()
    102103        {
    103104            setBuffer(0);
    104105        }
    105        
     106
    106107        // Pointer to a value that holds the base of this register file.
    107108        Register** basePointer() { return &m_base; }
    108        
     109
    109110        void shrink(size_t size)
    110111        {
     
    128129        size_t size() { return m_size; }
    129130        size_t maxSize() { return m_maxSize; }
    130        
     131
    131132        void clear();
    132133
     
    145146        bool safeForReentry() { return m_safeForReentry; }
    146147        void setSafeForReentry(bool safeForReentry) { m_safeForReentry = safeForReentry; }
     148
    147149    private:
    148150        size_t newBuffer(size_t size, size_t capacity, size_t minCapacity, size_t maxSize, size_t offset);
     
    155157            m_buffer = buffer;
    156158        }
    157        
     159
    158160        void setBase(Register*);
     161
    159162        bool m_safeForReentry;
    160163        size_t m_size;
     
    165168        RegisterFileStack* m_baseObserver;
    166169    };
    167    
     170
    168171} // namespace KJS
    169172
Note: See TracChangeset for help on using the changeset viewer.