Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends

nanojit::LirBuffer Class Reference

#include <LIR.h>

Collaboration diagram for nanojit::LirBuffer:

List of all members.

Public Member Functions

 LirBuffer (Allocator &alloc)
void clear ()
uintptr_t makeRoom (size_t szB)
 debug_only (void validate() const ;) verbose_only(LirNameMap *names
int32_t insCount ()
size_t byteCount ()

Public Attributes

struct {
   uint32_t   lir
_stats
AbiKind abi
LInsp state
LInsp param1
LInsp sp
LInsp rp
LInsp savedRegs [NumSavedRegs]

Protected Member Functions

void chunkAlloc ()
 Get CHUNK_SZB more memory for LIR instructions.
void moveToNewChunk (uintptr_t addrOfLastLInsOnCurrentChunk)

Protected Attributes

Allocator_allocator
uintptr_t _unused
uintptr_t _limit
size_t _bytesAllocated

Static Protected Attributes

static const size_t CHUNK_SZB = 8000
 Each chunk is just a raw area of LIns instances, with no header and no more than 8-byte alignment.

Friends

class LirBufWriter

Constructor & Destructor Documentation

nanojit::LirBuffer::LirBuffer ( Allocator alloc  ) 

Member Function Documentation

size_t nanojit::LirBuffer::byteCount (  ) 
void nanojit::LirBuffer::chunkAlloc (  )  [protected]

Get CHUNK_SZB more memory for LIR instructions.

void nanojit::LirBuffer::clear (  ) 
nanojit::LirBuffer::debug_only ( void validate() const ;   ) 
int32_t nanojit::LirBuffer::insCount (  ) 
uintptr_t nanojit::LirBuffer::makeRoom ( size_t  szB  ) 
void nanojit::LirBuffer::moveToNewChunk ( uintptr_t  addrOfLastLInsOnCurrentChunk  )  [protected]

Friends And Related Function Documentation

friend class LirBufWriter [friend]

Member Data Documentation

uintptr_t nanojit::LirBuffer::_limit [protected]
uintptr_t nanojit::LirBuffer::_unused [protected]
const size_t nanojit::LirBuffer::CHUNK_SZB = 8000 [static, protected]

Each chunk is just a raw area of LIns instances, with no header and no more than 8-byte alignment.

The chunk size is somewhat arbitrary.


The documentation for this class was generated from the following file: