969
970 RegisterOrConstant ensure_simm13_or_reg(RegisterOrConstant src, Register temp) {
971 if (is_simm13(src.constant_or_zero()))
972 return src; // register or short constant
973 guarantee(temp != noreg, "constant offset overflow");
974 set(src.as_constant(), temp);
975 return temp;
976 }
977
978 // --------------------------------------------------
979
980 public:
981 // traps as per trap.h (SPARC ABI?)
982
983 void breakpoint_trap();
984 void breakpoint_trap(Condition c, CC cc);
985
986 // Support for serializing memory accesses between threads
987 void serialize_memory(Register thread, Register tmp1, Register tmp2);
988
989 // Stack frame creation/removal
990 void enter();
991 void leave();
992
993 // Manipulation of C++ bools
994 // These are idioms to flag the need for care with accessing bools but on
995 // this platform we assume byte size
996
997 inline void stbool(Register d, const Address& a);
998 inline void ldbool(const Address& a, Register d);
999 inline void movbool( bool boolconst, Register d);
1000
1001 void resolve_oop_handle(Register result);
1002 void load_mirror(Register mirror, Register method);
1003
1004 // klass oop manipulations if compressed
1005 void load_klass(Register src_oop, Register klass);
1006 void store_klass(Register klass, Register dst_oop);
1007 void store_klass_gap(Register s, Register dst_oop);
1008
|
969
970 RegisterOrConstant ensure_simm13_or_reg(RegisterOrConstant src, Register temp) {
971 if (is_simm13(src.constant_or_zero()))
972 return src; // register or short constant
973 guarantee(temp != noreg, "constant offset overflow");
974 set(src.as_constant(), temp);
975 return temp;
976 }
977
978 // --------------------------------------------------
979
980 public:
981 // traps as per trap.h (SPARC ABI?)
982
983 void breakpoint_trap();
984 void breakpoint_trap(Condition c, CC cc);
985
986 // Support for serializing memory accesses between threads
987 void serialize_memory(Register thread, Register tmp1, Register tmp2);
988
989 void safepoint_poll(Label& slow_path, bool a, Register thread_reg, Register temp_reg);
990
991 // Stack frame creation/removal
992 void enter();
993 void leave();
994
995 // Manipulation of C++ bools
996 // These are idioms to flag the need for care with accessing bools but on
997 // this platform we assume byte size
998
999 inline void stbool(Register d, const Address& a);
1000 inline void ldbool(const Address& a, Register d);
1001 inline void movbool( bool boolconst, Register d);
1002
1003 void resolve_oop_handle(Register result);
1004 void load_mirror(Register mirror, Register method);
1005
1006 // klass oop manipulations if compressed
1007 void load_klass(Register src_oop, Register klass);
1008 void store_klass(Register klass, Register dst_oop);
1009 void store_klass_gap(Register s, Register dst_oop);
1010
|