equal
deleted
inserted
replaced
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; |