// The LIRAddressOpr comprises either a LIRItem or a LIR_Opr to describe elements // of an access in the C1 Access API. Both of them allow asking for the opr() which // will correspond to either _item.result() or _opr if there is no _item. class LIRAddressOpr: public StackObj {
LIRItem* _item;
LIR_Opr _opr; public:
LIRAddressOpr(LIRItem& item) : _item(&item), _opr() {}
LIRAddressOpr(LIR_Opr opr) : _item(NULL), _opr(opr) {}
LIRAddressOpr(const LIRAddressOpr& other) : _item(other._item), _opr(other._opr) {}
// The LIRAccess class wraps shared context parameters required for performing // the right access in C1. This includes the address of the offset and the decorators. class LIRAccess: public StackObj {
LIRGenerator* _gen;
DecoratorSet _decorators;
LIRAddressOpr _base;
LIRAddressOpr _offset;
BasicType _type;
LIR_Opr _resolved_addr;
CodeEmitInfo* _patch_emit_info;
CodeEmitInfo* _access_emit_info;
// The BarrierSetC1 class is the main entry point for the GC backend of the Access API in C1. // It is called by the LIRGenerator::access_* functions, which is the main entry point for // access calls in C1.
class BarrierSetC1: public CHeapObj<mtGC> { protected: virtual LIR_Opr resolve_address(LIRAccess& access, bool resolve_in_register);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.