Example #1
0
 void ComparingStub::init(nmethod* nm) {
   CountCodePattern* patt = CountStub::pattern[Comparing];
   int32* p = (int32*)insts();
   set_recompile_addr(Memory->code->trapdoors->Recompile_stub_td());
   set_count_addr(patt, (int32)&sendCounts[id()]);
   assert(isSetHi(p + patt->limit_sethi_offset), "wrong pattern");
   fint limit = recompileLimit(nm->level());
   setSetHiImm(p + patt->limit_sethi_offset, limit);
 }
Example #2
0
 void AgingStub::init(nmethod* nm) {
   CountCodePattern* patt = CountStub::pattern[Comparing];
   set_recompile_addr(first_inst_addr(MakeOld_stub));
   set_count_addr(patt, (int32)&sendCounts[id()]);
   int32* p = (int32*)(int32(insts()) + patt->limit_offset);
   assert(*p == patt->initial_limit, "???"); 
   fint limit = nm->agingLimit();
   *p = limit;
   set_count(1);    
 } 
Example #3
0
  void ComparingStub::init(nmethod* nm) {
    CountCodePattern* patt = CountStub::pattern[Comparing];
    set_recompile_addr((pc_t)Recompile_stub);
    set_count_addr(patt, (int32)&sendCounts[id()]);

    int32* p = (int32*)(int32(insts()) + patt->limit_offset);
    assert(*p == patt->initial_limit, "???");
    fint limit = recompileLimit(nm->level());
    *p = limit;
  }
Example #4
0
 void AgingStub::init(nmethod* nm) {
   CountCodePattern* patt = CountStub::pattern[Comparing];
   int32* p = (int32*)insts();
   set_recompile_addr(first_inst_addr(MakeOld_stub));
   set_count_addr(patt, (int32)&sendCounts[id()]);
   fint limit = nm->agingLimit();
   if (limit > 1023) {
     setSetHiImm(p + patt->limit_sethi_offset, limit);
   } else {
     // setHi would set to 0, so use an add instead
     p[patt->limit_sethi_offset] = add_inst;
     setArithImm(p + patt->limit_sethi_offset, limit);
   }
   set_count(1);
 }