< prev index next >
src/cpu/aarch64/vm/macroAssembler_aarch64.hpp
Print this page
rev 12152 : [mq]: verification.patch
*** 539,548 ****
--- 539,559 ----
inline void clear_fpsr()
{
msr(0b011, 0b0100, 0b0100, 0b001, zr);
}
+ // Macro instructions for accessing and updating the condition flags
+ inline void get_cflags(Register reg)
+ {
+ mrs(0b011, 0b0100, 0b0010, 0b000, reg);
+ }
+
+ inline void set_cflags(Register reg)
+ {
+ msr(0b011, 0b0100, 0b0010, 0b000, reg);
+ }
+
// DCZID_EL0: op1 == 011
// CRn == 0000
// CRm == 0000
// op2 == 111
inline void get_dczid_el0(Register reg)
*** 1237,1250 ****
Register cnt1, Register cnt2,
Register tmp1, Register tmp2,
Register tmp3, Register tmp4,
int int_cnt1, Register result, int ae);
! void in_heap_check(Register r, Label &nope);
! void shenandoah_store_check(Register r, Address addr);
! void shenandoah_store_check(Address addr);
! void shenandoah_store_check(Register addr);
private:
void add2_with_carry(Register final_dest_hi, Register dest_hi, Register dest_lo,
Register src1, Register src2);
void add2_with_carry(Register dest_hi, Register dest_lo, Register src1, Register src2) {
--- 1248,1270 ----
Register cnt1, Register cnt2,
Register tmp1, Register tmp2,
Register tmp3, Register tmp4,
int int_cnt1, Register result, int ae);
! void in_heap_check(Register r, Register tmp, Label &nope);
!
! private:
! void shenandoah_cset_check(Register obj, Register tmp1, Register tmp2, Label& done);
!
! public:
! void _shenandoah_store_addr_check(Register addr, const char* msg, const char* file, int line);
! void _shenandoah_store_addr_check(Address addr, const char* msg, const char* file, int line);
! #define shenandoah_store_addr_check(reg) _shenandoah_store_addr_check(reg, "oop not safe for writing", __FILE__, __LINE__)
!
! void _shenandoah_store_check(Address addr, Register value, const char* msg, const char* file, int line);
! void _shenandoah_store_check(Register addr, Register value, const char* msg, const char* file, int line);
! #define shenandoah_store_check(addr, value) _shenandoah_store_check(addr, value, "oop not safe for writing", __FILE__, __LINE__)
private:
void add2_with_carry(Register final_dest_hi, Register dest_hi, Register dest_lo,
Register src1, Register src2);
void add2_with_carry(Register dest_hi, Register dest_lo, Register src1, Register src2) {
< prev index next >