src/cpu/x86/vm/x86_32.ad

changeset 1424
148e5441d916
parent 1421
62001a362ce9
child 1572
97125851f396
equal deleted inserted replaced
1422:00977607da34 1424:148e5441d916
377 // emit 32 bit value and construct relocation entry from RelocationHolder 377 // emit 32 bit value and construct relocation entry from RelocationHolder
378 void emit_d32_reloc(CodeBuffer &cbuf, int d32, RelocationHolder const& rspec, 378 void emit_d32_reloc(CodeBuffer &cbuf, int d32, RelocationHolder const& rspec,
379 int format) { 379 int format) {
380 #ifdef ASSERT 380 #ifdef ASSERT
381 if (rspec.reloc()->type() == relocInfo::oop_type && d32 != 0 && d32 != (int)Universe::non_oop_word()) { 381 if (rspec.reloc()->type() == relocInfo::oop_type && d32 != 0 && d32 != (int)Universe::non_oop_word()) {
382 assert(oop(d32)->is_oop() && oop(d32)->is_perm(), "cannot embed non-perm oops in code"); 382 assert(oop(d32)->is_oop() && (ScavengeRootsInCode || !oop(d32)->is_scavengable()), "cannot embed scavengable oops in code");
383 } 383 }
384 #endif 384 #endif
385 cbuf.relocate(cbuf.inst_mark(), rspec, format); 385 cbuf.relocate(cbuf.inst_mark(), rspec, format);
386 386
387 *((int *)(cbuf.code_end())) = d32; 387 *((int *)(cbuf.code_end())) = d32;

mercurial