void InterpretedIC_Iterator::set_method(oop m) { if (m->is_mem()) { assert(m->is_method(), "must be a method"); _method = (methodOop)m; _nm = NULL; } else { jumpTableEntry* e = (jumpTableEntry*)m; _nm = e->method(); _method = _nm->method(); } }
void SICGenHelper::loadImmediateOop(oop p, Location dest, bool isInt) { assert(isRegister(dest), "must be a register"); if (p == 0) { a->OrR(G0, G0, dest); } else if ((isInt || !p->is_mem()) && isImmediate(smiOop(p))) { a->OrI(G0, (int)p, dest); } else { a->SetHiO(p, dest); // load high part of value a->AddO(dest, p, dest); // add low part } }
void CodeGen::loadOop(Location dest, oop p) { // *if p is 0... // <move g0, dest> // *else... // *if p is a small smiOop... // or g0, p, t/dest // *else... // sethi p, t/dest // add dest, p, t/dest // *end // <move t, dest> // *end Location t; if (isRegister(dest)) { t = dest; } else { t = Temp1; } if (p == 0) { t = G0; # ifdef TRUE_FALSE_REGISTERS } else if (p == Memory->trueObj) { t = TrueReg; } else if (p == Memory->falseObj) { t = FalseReg; # endif } else if (! p->is_mem() && int32(p) < maxImmediate && int32(p) > -maxImmediate) { a.OrO(G0, p, t); } else { a.SetHiO(p, t); // load high part of value a.AddO(t, p, t); // add low part } move(dest, t); }
inline bool newGeneration::is_new(oop p, char *boundary) { return p->is_mem() && is_new(memOop(p), boundary); }
ConstPReg(InlinedScope* s, oop c) : PReg(s) { constant = c; assert(!c->is_mem() || c->is_old(), "constant must be tenured"); }
inline bool WeakArrayRegister::mark_sweep_is_near_death(oop obj) { return obj->is_mem() && !memOop(obj)->is_gc_marked(); }
bool is_method() const { return _result->is_mem(); }