src/share/vm/asm/assembler.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8004250 Sdiff src/share/vm/asm

src/share/vm/asm/assembler.cpp

Print this page




  93   if (pad > 0) {
  94     while (--pad >= 0) { *end++ = 0; }
  95     cs->set_end(end);
  96   }
  97   set_code_section(cs);
  98   return end;
  99 }
 100 
 101 // Inform CodeBuffer that incoming code and relocation will be code
 102 // in section cs (insts or stubs).
 103 void AbstractAssembler::end_a_const(CodeSection* cs) {
 104   assert(_code_section == code()->consts(), "not in consts?");
 105   set_code_section(cs);
 106 }
 107 
 108 void AbstractAssembler::flush() {
 109   ICache::invalidate_range(addr_at(0), offset());
 110 }
 111 
 112 
 113 void AbstractAssembler::a_byte(int x) {
 114   emit_byte(x);
 115 }
 116 
 117 
 118 void AbstractAssembler::a_long(jint x) {
 119   emit_long(x);
 120 }
 121 
 122 // Labels refer to positions in the (to be) generated code.  There are bound
 123 // and unbound
 124 //
 125 // Bound labels refer to known positions in the already generated code.
 126 // offset() is the position the label refers to.
 127 //
 128 // Unbound labels refer to unknown positions in the code to be generated; it
 129 // may contain a list of unresolved displacements that refer to it
 130 #ifndef PRODUCT
 131 void AbstractAssembler::print(Label& L) {
 132   if (L.is_bound()) {
 133     tty->print_cr("bound label to %d|%d", L.loc_pos(), L.loc_sect());
 134   } else if (L.is_unbound()) {
 135     L.print_instructions((MacroAssembler*)this);
 136   } else {
 137     tty->print_cr("label in inconsistent state (loc = %d)", L.loc());
 138   }
 139 }
 140 #endif // PRODUCT
 141 




  93   if (pad > 0) {
  94     while (--pad >= 0) { *end++ = 0; }
  95     cs->set_end(end);
  96   }
  97   set_code_section(cs);
  98   return end;
  99 }
 100 
 101 // Inform CodeBuffer that incoming code and relocation will be code
 102 // in section cs (insts or stubs).
 103 void AbstractAssembler::end_a_const(CodeSection* cs) {
 104   assert(_code_section == code()->consts(), "not in consts?");
 105   set_code_section(cs);
 106 }
 107 
 108 void AbstractAssembler::flush() {
 109   ICache::invalidate_range(addr_at(0), offset());
 110 }
 111 
 112 









 113 // Labels refer to positions in the (to be) generated code.  There are bound
 114 // and unbound
 115 //
 116 // Bound labels refer to known positions in the already generated code.
 117 // offset() is the position the label refers to.
 118 //
 119 // Unbound labels refer to unknown positions in the code to be generated; it
 120 // may contain a list of unresolved displacements that refer to it
 121 #ifndef PRODUCT
 122 void AbstractAssembler::print(Label& L) {
 123   if (L.is_bound()) {
 124     tty->print_cr("bound label to %d|%d", L.loc_pos(), L.loc_sect());
 125   } else if (L.is_unbound()) {
 126     L.print_instructions((MacroAssembler*)this);
 127   } else {
 128     tty->print_cr("label in inconsistent state (loc = %d)", L.loc());
 129   }
 130 }
 131 #endif // PRODUCT
 132 


src/share/vm/asm/assembler.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File