953
954 // Writes to stack successive pages until offset reached to check for
955 // stack overflow + shadow pages. Also, clobbers tmp
956 void bang_stack_size(Register size, Register tmp);
957
958 // Check for reserved stack access in method being exited (for JIT)
959 void reserved_stack_check();
960
961 virtual RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr,
962 Register tmp,
963 int offset);
964
965 // Support for serializing memory accesses between threads
966 void serialize_memory(Register thread, Register tmp);
967
968 // Arithmetics
969
970 void addptr(const Address &dst, int32_t src);
971 void cmpptr(Register src1, Address src2);
972
973 // Various forms of CAS
974
975 void cmpxchg_obj_header(Register oldv, Register newv, Register obj, Register tmp,
976 Label &suceed, Label *fail);
977 void cmpxchgptr(Register oldv, Register newv, Register addr, Register tmp,
978 Label &suceed, Label *fail);
979
980 void cmpxchgw(Register oldv, Register newv, Register addr, Register tmp,
981 Label &suceed, Label *fail);
982
983 void atomic_add(Register prev, RegisterOrConstant incr, Register addr);
984 void atomic_addw(Register prev, RegisterOrConstant incr, Register addr);
985 void atomic_addal(Register prev, RegisterOrConstant incr, Register addr);
986 void atomic_addalw(Register prev, RegisterOrConstant incr, Register addr);
987
988 void atomic_xchg(Register prev, Register newv, Register addr);
989 void atomic_xchgw(Register prev, Register newv, Register addr);
990 void atomic_xchgal(Register prev, Register newv, Register addr);
991 void atomic_xchgalw(Register prev, Register newv, Register addr);
992
|
953
954 // Writes to stack successive pages until offset reached to check for
955 // stack overflow + shadow pages. Also, clobbers tmp
956 void bang_stack_size(Register size, Register tmp);
957
958 // Check for reserved stack access in method being exited (for JIT)
959 void reserved_stack_check();
960
961 virtual RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr,
962 Register tmp,
963 int offset);
964
965 // Support for serializing memory accesses between threads
966 void serialize_memory(Register thread, Register tmp);
967
968 // Arithmetics
969
970 void addptr(const Address &dst, int32_t src);
971 void cmpptr(Register src1, Address src2);
972
973 void cmpoop(Register obj1, Register obj2);
974
975 // Various forms of CAS
976
977 void cmpxchg_obj_header(Register oldv, Register newv, Register obj, Register tmp,
978 Label &suceed, Label *fail);
979 void cmpxchgptr(Register oldv, Register newv, Register addr, Register tmp,
980 Label &suceed, Label *fail);
981
982 void cmpxchgw(Register oldv, Register newv, Register addr, Register tmp,
983 Label &suceed, Label *fail);
984
985 void atomic_add(Register prev, RegisterOrConstant incr, Register addr);
986 void atomic_addw(Register prev, RegisterOrConstant incr, Register addr);
987 void atomic_addal(Register prev, RegisterOrConstant incr, Register addr);
988 void atomic_addalw(Register prev, RegisterOrConstant incr, Register addr);
989
990 void atomic_xchg(Register prev, Register newv, Register addr);
991 void atomic_xchgw(Register prev, Register newv, Register addr);
992 void atomic_xchgal(Register prev, Register newv, Register addr);
993 void atomic_xchgalw(Register prev, Register newv, Register addr);
994
|