< prev index next >

src/cpu/s390/vm/macroAssembler_s390.hpp

Print this page




 425                                     Label&   branch_target,
 426                                     bool     len64,
 427                                     bool     has_sign);
 428 
 429   //
 430   // Support for frame handling
 431   //
 432   // Specify the register that should be stored as the return pc in the
 433   // current frame (default is R14).
 434   inline void save_return_pc(Register pc = Z_R14);
 435   inline void restore_return_pc();
 436 
 437   // Get current PC.
 438   address get_PC(Register result);
 439 
 440   // Get current PC + offset. Offset given in bytes, must be even!
 441   address get_PC(Register result, int64_t offset);
 442 
 443   // Resize current frame either relatively wrt to current SP or absolute.
 444   void resize_frame_sub(Register offset, Register fp, bool load_fp=true);
 445   void resize_frame_absolute(Register addr, Register fp, bool load_fp=true);

 446   void resize_frame(RegisterOrConstant offset, Register fp, bool load_fp=true);
 447 
 448   // Push a frame of size bytes, if copy_sp is false, old_sp must already
 449   // contain a copy of Z_SP.
 450   void push_frame(Register bytes, Register old_sp, bool copy_sp = true, bool bytes_with_inverted_sign = false);
 451 
 452   // Push a frame of size `bytes'. no abi space provided.
 453   // Don't rely on register locking, instead pass a scratch register
 454   // (Z_R0 by default).
 455   // CAUTION! passing registers >= Z_R2 may produce bad results on
 456   // old CPUs!
 457   unsigned int push_frame(unsigned int bytes, Register scratch = Z_R0);
 458 
 459   // Push a frame of size `bytes' with abi160 on top.
 460   unsigned int push_frame_abi160(unsigned int bytes);
 461 
 462   // Pop current C frame.
 463   void pop_frame();
 464 
 465   //




 425                                     Label&   branch_target,
 426                                     bool     len64,
 427                                     bool     has_sign);
 428 
 429   //
 430   // Support for frame handling
 431   //
 432   // Specify the register that should be stored as the return pc in the
 433   // current frame (default is R14).
 434   inline void save_return_pc(Register pc = Z_R14);
 435   inline void restore_return_pc();
 436 
 437   // Get current PC.
 438   address get_PC(Register result);
 439 
 440   // Get current PC + offset. Offset given in bytes, must be even!
 441   address get_PC(Register result, int64_t offset);
 442 
 443   // Resize current frame either relatively wrt to current SP or absolute.
 444   void resize_frame_sub(Register offset, Register fp, bool load_fp=true);
 445   void resize_frame_abs_with_offset(Register newSP, Register fp, int offset, bool load_fp);
 446   void resize_frame_absolute(Register newSP, Register fp, bool load_fp);
 447   void resize_frame(RegisterOrConstant offset, Register fp, bool load_fp=true);
 448 
 449   // Push a frame of size bytes, if copy_sp is false, old_sp must already
 450   // contain a copy of Z_SP.
 451   void push_frame(Register bytes, Register old_sp, bool copy_sp = true, bool bytes_with_inverted_sign = false);
 452 
 453   // Push a frame of size `bytes'. no abi space provided.
 454   // Don't rely on register locking, instead pass a scratch register
 455   // (Z_R0 by default).
 456   // CAUTION! passing registers >= Z_R2 may produce bad results on
 457   // old CPUs!
 458   unsigned int push_frame(unsigned int bytes, Register scratch = Z_R0);
 459 
 460   // Push a frame of size `bytes' with abi160 on top.
 461   unsigned int push_frame_abi160(unsigned int bytes);
 462 
 463   // Pop current C frame.
 464   void pop_frame();
 465 
 466   //


< prev index next >