< prev index next >

src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp

Print this page




 163   void str(Register Rx, const Address &adr);
 164   void strw(Register Rx, const Address &adr);
 165 
 166   // Frame creation and destruction shared between JITs.
 167   void build_frame(int framesize);
 168   void remove_frame(int framesize);
 169 
 170   virtual void _call_Unimplemented(address call_site) {
 171     mov(rscratch2, call_site);
 172     haltsim();
 173   }
 174 
 175 #define call_Unimplemented() _call_Unimplemented((address)__PRETTY_FUNCTION__)
 176 
 177   virtual void notify(int type);
 178 
 179   // aliases defined in AARCH64 spec
 180 
 181   template<class T>
 182   inline void cmpw(Register Rd, T imm)  { subsw(zr, Rd, imm); }
 183   // imm is limited to 12 bits.
 184   inline void cmp(Register Rd, unsigned imm)  { subs(zr, Rd, imm); }




 185 
 186   inline void cmnw(Register Rd, unsigned imm) { addsw(zr, Rd, imm); }
 187   inline void cmn(Register Rd, unsigned imm) { adds(zr, Rd, imm); }
 188 
 189   void cset(Register Rd, Assembler::Condition cond) {
 190     csinc(Rd, zr, zr, ~cond);
 191   }
 192   void csetw(Register Rd, Assembler::Condition cond) {
 193     csincw(Rd, zr, zr, ~cond);
 194   }
 195 
 196   void cneg(Register Rd, Register Rn, Assembler::Condition cond) {
 197     csneg(Rd, Rn, Rn, ~cond);
 198   }
 199   void cnegw(Register Rd, Register Rn, Assembler::Condition cond) {
 200     csnegw(Rd, Rn, Rn, ~cond);
 201   }
 202 
 203   inline void movw(Register Rd, Register Rn) {
 204     if (Rd == sp || Rn == sp) {




 163   void str(Register Rx, const Address &adr);
 164   void strw(Register Rx, const Address &adr);
 165 
 166   // Frame creation and destruction shared between JITs.
 167   void build_frame(int framesize);
 168   void remove_frame(int framesize);
 169 
 170   virtual void _call_Unimplemented(address call_site) {
 171     mov(rscratch2, call_site);
 172     haltsim();
 173   }
 174 
 175 #define call_Unimplemented() _call_Unimplemented((address)__PRETTY_FUNCTION__)
 176 
 177   virtual void notify(int type);
 178 
 179   // aliases defined in AARCH64 spec
 180 
 181   template<class T>
 182   inline void cmpw(Register Rd, T imm)  { subsw(zr, Rd, imm); }
 183 
 184   inline void cmp(Register Rd, unsigned char imm8)  { subs(zr, Rd, imm8); }
 185   // imm is limited to 12 bits: 0<x<4096 or 4096<=x<2^24
 186   inline void cmp_imm12(Register Rd, unsigned imm12)  { subs(zr, Rd, imm12); }
 187 
 188   inline void cmp(Register Rd, Register Rn, unsigned imm32)  { subs(Rd, Rn, imm32); }
 189 
 190   inline void cmnw(Register Rd, unsigned imm) { addsw(zr, Rd, imm); }
 191   inline void cmn(Register Rd, unsigned imm) { adds(zr, Rd, imm); }
 192 
 193   void cset(Register Rd, Assembler::Condition cond) {
 194     csinc(Rd, zr, zr, ~cond);
 195   }
 196   void csetw(Register Rd, Assembler::Condition cond) {
 197     csincw(Rd, zr, zr, ~cond);
 198   }
 199 
 200   void cneg(Register Rd, Register Rn, Assembler::Condition cond) {
 201     csneg(Rd, Rn, Rn, ~cond);
 202   }
 203   void cnegw(Register Rd, Register Rn, Assembler::Condition cond) {
 204     csnegw(Rd, Rn, Rn, ~cond);
 205   }
 206 
 207   inline void movw(Register Rd, Register Rn) {
 208     if (Rd == sp || Rn == sp) {


< prev index next >