< prev index next >

src/cpu/aarch32/vm/nativeInst_aarch32.hpp

Print this page




  52 
  53 class NativeInstruction VALUE_OBJ_CLASS_SPEC {
  54   friend class Relocation;
  55   friend bool is_NativeCallTrampolineStub_at(address);
  56  public:
  57   enum { arm_insn_sz = 4 };
  58 
  59   inline bool is_nop();
  60   inline bool is_illegal();
  61   inline bool is_return();
  62   inline bool is_jump_or_nop();
  63   inline bool is_cond_jump();
  64   bool is_safepoint_poll();
  65   bool is_movt();
  66   bool is_orr();
  67   bool is_sigill_zombie_not_entrant();
  68 
  69   bool is_movt(Register dst, unsigned imm, Assembler::Condition cond = Assembler::C_DFLT);
  70   bool is_movw(Register dst, unsigned imm, Assembler::Condition cond = Assembler::C_DFLT);
  71   bool is_ldr(Register dst, Address addr, Assembler::Condition cond = Assembler::C_DFLT);

  72 
  73   inline bool is_jump() const;
  74   inline bool is_call() const;
  75 
  76   inline bool is_mov_const_reg() const;
  77   inline bool is_reg_call() const;
  78   inline bool is_imm_call() const;
  79   inline bool is_reg_jump() const;
  80   inline bool is_imm_jump() const;
  81 
  82  protected:
  83   address addr() const { return address(this); }
  84   // TODO remove this, every command is 4byte long
  85 #if 1
  86   address addr_at(int offset) const    { return addr() + offset; }
  87 
  88   s_char sbyte_at(int offset) const    { return *(s_char*) addr_at(offset); }
  89   u_char ubyte_at(int offset) const    { return *(u_char*) addr_at(offset); }
  90 
  91   jint int_at(int offset) const        { return *(jint*) addr_at(offset); }




  52 
  53 class NativeInstruction VALUE_OBJ_CLASS_SPEC {
  54   friend class Relocation;
  55   friend bool is_NativeCallTrampolineStub_at(address);
  56  public:
  57   enum { arm_insn_sz = 4 };
  58 
  59   inline bool is_nop();
  60   inline bool is_illegal();
  61   inline bool is_return();
  62   inline bool is_jump_or_nop();
  63   inline bool is_cond_jump();
  64   bool is_safepoint_poll();
  65   bool is_movt();
  66   bool is_orr();
  67   bool is_sigill_zombie_not_entrant();
  68 
  69   bool is_movt(Register dst, unsigned imm, Assembler::Condition cond = Assembler::C_DFLT);
  70   bool is_movw(Register dst, unsigned imm, Assembler::Condition cond = Assembler::C_DFLT);
  71   bool is_ldr(Register dst, Address addr, Assembler::Condition cond = Assembler::C_DFLT);
  72   bool is_patched_already() const;
  73 
  74   inline bool is_jump() const;
  75   inline bool is_call() const;
  76 
  77   inline bool is_mov_const_reg() const;
  78   inline bool is_reg_call() const;
  79   inline bool is_imm_call() const;
  80   inline bool is_reg_jump() const;
  81   inline bool is_imm_jump() const;
  82 
  83  protected:
  84   address addr() const { return address(this); }
  85   // TODO remove this, every command is 4byte long
  86 #if 1
  87   address addr_at(int offset) const    { return addr() + offset; }
  88 
  89   s_char sbyte_at(int offset) const    { return *(s_char*) addr_at(offset); }
  90   u_char ubyte_at(int offset) const    { return *(u_char*) addr_at(offset); }
  91 
  92   jint int_at(int offset) const        { return *(jint*) addr_at(offset); }


< prev index next >