< prev index next >

src/hotspot/cpu/aarch64/assembler_aarch64.hpp

Print this page
rev 54763 : 8213084: Rework and enhance Print[Opto]Assembly output
Reviewed-by:


 612 class Assembler : public AbstractAssembler {
 613 
 614 #ifndef PRODUCT
 615   static const unsigned long asm_bp;
 616 
 617   void emit_long(jint x) {
 618     if ((unsigned long)pc() == asm_bp)
 619       asm volatile ("nop");
 620     AbstractAssembler::emit_int32(x);
 621   }
 622 #else
 623   void emit_long(jint x) {
 624     AbstractAssembler::emit_int32(x);
 625   }
 626 #endif
 627 
 628 public:
 629 
 630   enum { instruction_size = 4 };
 631 








 632   Address adjust(Register base, int offset, bool preIncrement) {
 633     if (preIncrement)
 634       return Address(Pre(base, offset));
 635     else
 636       return Address(Post(base, offset));
 637   }
 638 
 639   Address pre(Register base, int offset) {
 640     return adjust(base, offset, true);
 641   }
 642 
 643   Address post(Register base, int offset) {
 644     return adjust(base, offset, false);
 645   }
 646 
 647   Address post(Register base, Register idx) {
 648     return Address(Post(base, idx));
 649   }
 650 
 651   Instruction_aarch64* current;




 612 class Assembler : public AbstractAssembler {
 613 
 614 #ifndef PRODUCT
 615   static const unsigned long asm_bp;
 616 
 617   void emit_long(jint x) {
 618     if ((unsigned long)pc() == asm_bp)
 619       asm volatile ("nop");
 620     AbstractAssembler::emit_int32(x);
 621   }
 622 #else
 623   void emit_long(jint x) {
 624     AbstractAssembler::emit_int32(x);
 625   }
 626 #endif
 627 
 628 public:
 629 
 630   enum { instruction_size = 4 };
 631 
 632   //---<  calculate length of instruction  >---
 633   // We just use the values set above.
 634   // instruction must start at passed address
 635   static unsigned int instr_len(unsigned char *instr) { return instruction_size; }
 636 
 637   //---<  longest instructions  >---
 638   static unsigned int instr_maxlen() { return instruction_size; }
 639 
 640   Address adjust(Register base, int offset, bool preIncrement) {
 641     if (preIncrement)
 642       return Address(Pre(base, offset));
 643     else
 644       return Address(Post(base, offset));
 645   }
 646 
 647   Address pre(Register base, int offset) {
 648     return adjust(base, offset, true);
 649   }
 650 
 651   Address post(Register base, int offset) {
 652     return adjust(base, offset, false);
 653   }
 654 
 655   Address post(Register base, Register idx) {
 656     return Address(Post(base, idx));
 657   }
 658 
 659   Instruction_aarch64* current;


< prev index next >