Classes | Namespaces | Defines | Functions

Writer.h File Reference

#include "jsiter.h"
#include "jsobj.h"
#include "jsstr.h"
#include "jstypedarray.h"
#include "nanojit.h"
Include dependency graph for Writer.h:

Classes

struct  js::tjit::Address
struct  js::tjit::StackAddress
struct  js::tjit::CxAddress
struct  js::tjit::EosAddress
struct  js::tjit::AllocSlotsAddress
struct  js::tjit::StackFrameAddress
struct  js::tjit::FSlotsAddress
struct  js::tjit::DSlotsAddress
struct  js::tjit::IterPropsAddress
struct  js::tjit::FCSlotsAddress
struct  js::tjit::ArgsSlotOffsetAddress
struct  js::tjit::AnyAddress
struct  js::tjit::OffsetAddress
struct  js::tjit::MaybeBranch
class  js::tjit::Writer

Namespaces

namespace  js
namespace  js::tjit

Defines

#define CxAddress(fieldname)   CxAddress(cx_ins, offsetof(JSContext, fieldname))
#define ldiStateField(fieldname)
#define ldpStateField(fieldname)
#define stStateField(value, fieldname)   stStateFieldHelper(value, lirbuf->state, offsetof(TracerState, fieldname))
#define ldpContextField(fieldname)
#define ldpConstContextField(fieldname)
#define stContextField(value, fieldname)   stContextField((value), cx_ins, offsetof(JSContext, fieldname))
#define stTraceMonitorField(value, fieldname)   stTraceMonitorField(value, &traceMonitor->fieldname, #fieldname)
#define ldiVMSideExitField(lr, fieldname)   name(w.ldiVMSideExitFieldHelper((lr), offsetof(VMSideExit, fieldname)), #fieldname)
#define nameImmi(i)   name(w.immi(i), #i)
#define nameImmui(ui)   name(w.immi((uint32_t)ui), #ui)
#define nameImmpNonGC(p)   name(w.immpNonGC(p), #p)
#define nameImmw(ww)   name(w.immpNonGC((void *) (ww)), #ww)
#define immpMagicWhy(why)   name(w.immpNonGC((void *)(size_t)(why)), #why)

Functions

bool js::tjit::IsPromotedInt32 (nj::LIns *ins)
bool js::tjit::IsPromotedUint32 (nj::LIns *ins)
bool js::tjit::IsPromotedInt32OrUint32 (nj::LIns *ins)
nj::LInsjs::tjit::DemoteToInt32 (nj::LirWriter *out, nj::LIns *ins)
nj::LInsjs::tjit::DemoteToUint32 (nj::LirWriter *out, nj::LIns *ins)

Define Documentation

#define CxAddress (   fieldname  )     CxAddress(cx_ins, offsetof(JSContext, fieldname))
#define immpMagicWhy (   why  )     name(w.immpNonGC((void *)(size_t)(why)), #why)
#define ldiStateField (   fieldname  ) 
Value:
name(w.ldStateFieldHelper(LIR_ldi, lirbuf->state, offsetof(TracerState, fieldname)), \
             #fieldname)
#define ldiVMSideExitField (   lr,
  fieldname 
)    name(w.ldiVMSideExitFieldHelper((lr), offsetof(VMSideExit, fieldname)), #fieldname)
#define ldpConstContextField (   fieldname  ) 
Value:
name(w.ldpContextFieldHelper(cx_ins, offsetof(JSContext, fieldname), LOAD_CONST), \
             #fieldname)
#define ldpContextField (   fieldname  ) 
Value:
name(w.ldpContextFieldHelper(cx_ins, offsetof(JSContext, fieldname), LOAD_NORMAL), \
             #fieldname)
#define ldpStateField (   fieldname  ) 
Value:
name(w.ldStateFieldHelper(LIR_ldp, lirbuf->state, offsetof(TracerState, fieldname)), \
             #fieldname)
#define nameImmi (   i  )     name(w.immi(i), #i)
#define nameImmpNonGC (   p  )     name(w.immpNonGC(p), #p)
#define nameImmui (   ui  )     name(w.immi((uint32_t)ui), #ui)
#define nameImmw (   ww  )     name(w.immpNonGC((void *) (ww)), #ww)
#define stContextField (   value,
  fieldname 
)    stContextField((value), cx_ins, offsetof(JSContext, fieldname))
#define stStateField (   value,
  fieldname 
)    stStateFieldHelper(value, lirbuf->state, offsetof(TracerState, fieldname))
#define stTraceMonitorField (   value,
  fieldname 
)    stTraceMonitorField(value, &traceMonitor->fieldname, #fieldname)