< prev index next >

src/hotspot/cpu/x86/nativeInst_x86.hpp

Print this page




  33 
  34 // We have interfaces for the following instructions:
  35 // - NativeInstruction
  36 // - - NativeCall
  37 // - - NativeMovConstReg
  38 // - - NativeMovConstRegPatching
  39 // - - NativeMovRegMem
  40 // - - NativeMovRegMemPatching
  41 // - - NativeJump
  42 // - - NativeFarJump
  43 // - - NativeIllegalOpCode
  44 // - - NativeGeneralJump
  45 // - - NativeReturn
  46 // - - NativeReturnX (return with argument)
  47 // - - NativePushConst
  48 // - - NativeTstRegMem
  49 
  50 // The base class for different kinds of native instruction abstractions.
  51 // Provides the primitive operations to manipulate code relative to this.
  52 
  53 class NativeInstruction VALUE_OBJ_CLASS_SPEC {
  54   friend class Relocation;
  55 
  56  public:
  57   enum Intel_specific_constants {
  58     nop_instruction_code        = 0x90,
  59     nop_instruction_size        =    1
  60   };
  61 
  62   bool is_nop()                        { return ubyte_at(0) == nop_instruction_code; }
  63   inline bool is_call();
  64   inline bool is_call_reg();
  65   inline bool is_illegal();
  66   inline bool is_return();
  67   inline bool is_jump();
  68   inline bool is_jump_reg();
  69   inline bool is_far_jump();
  70   inline bool is_cond_jump();
  71   inline bool is_safepoint_poll();
  72   inline bool is_mov_literal64();
  73 




  33 
  34 // We have interfaces for the following instructions:
  35 // - NativeInstruction
  36 // - - NativeCall
  37 // - - NativeMovConstReg
  38 // - - NativeMovConstRegPatching
  39 // - - NativeMovRegMem
  40 // - - NativeMovRegMemPatching
  41 // - - NativeJump
  42 // - - NativeFarJump
  43 // - - NativeIllegalOpCode
  44 // - - NativeGeneralJump
  45 // - - NativeReturn
  46 // - - NativeReturnX (return with argument)
  47 // - - NativePushConst
  48 // - - NativeTstRegMem
  49 
  50 // The base class for different kinds of native instruction abstractions.
  51 // Provides the primitive operations to manipulate code relative to this.
  52 
  53 class NativeInstruction {
  54   friend class Relocation;
  55 
  56  public:
  57   enum Intel_specific_constants {
  58     nop_instruction_code        = 0x90,
  59     nop_instruction_size        =    1
  60   };
  61 
  62   bool is_nop()                        { return ubyte_at(0) == nop_instruction_code; }
  63   inline bool is_call();
  64   inline bool is_call_reg();
  65   inline bool is_illegal();
  66   inline bool is_return();
  67   inline bool is_jump();
  68   inline bool is_jump_reg();
  69   inline bool is_far_jump();
  70   inline bool is_cond_jump();
  71   inline bool is_safepoint_poll();
  72   inline bool is_mov_literal64();
  73 


< prev index next >