src/share/vm/c1/c1_Instruction.hpp

changeset 4106
7eca5de9e0b6
parent 4037
da91efe96a93
child 4860
46f6f063b272
equal deleted inserted replaced
4105:8ae8f9dd7099 4106:7eca5de9e0b6
100 class UnsafeGetRaw; 100 class UnsafeGetRaw;
101 class UnsafePutRaw; 101 class UnsafePutRaw;
102 class UnsafeObjectOp; 102 class UnsafeObjectOp;
103 class UnsafeGetObject; 103 class UnsafeGetObject;
104 class UnsafePutObject; 104 class UnsafePutObject;
105 class UnsafeGetAndSetObject;
105 class UnsafePrefetch; 106 class UnsafePrefetch;
106 class UnsafePrefetchRead; 107 class UnsafePrefetchRead;
107 class UnsafePrefetchWrite; 108 class UnsafePrefetchWrite;
108 class ProfileCall; 109 class ProfileCall;
109 class ProfileInvoke; 110 class ProfileInvoke;
200 virtual void do_RoundFP (RoundFP* x) = 0; 201 virtual void do_RoundFP (RoundFP* x) = 0;
201 virtual void do_UnsafeGetRaw (UnsafeGetRaw* x) = 0; 202 virtual void do_UnsafeGetRaw (UnsafeGetRaw* x) = 0;
202 virtual void do_UnsafePutRaw (UnsafePutRaw* x) = 0; 203 virtual void do_UnsafePutRaw (UnsafePutRaw* x) = 0;
203 virtual void do_UnsafeGetObject(UnsafeGetObject* x) = 0; 204 virtual void do_UnsafeGetObject(UnsafeGetObject* x) = 0;
204 virtual void do_UnsafePutObject(UnsafePutObject* x) = 0; 205 virtual void do_UnsafePutObject(UnsafePutObject* x) = 0;
206 virtual void do_UnsafeGetAndSetObject(UnsafeGetAndSetObject* x) = 0;
205 virtual void do_UnsafePrefetchRead (UnsafePrefetchRead* x) = 0; 207 virtual void do_UnsafePrefetchRead (UnsafePrefetchRead* x) = 0;
206 virtual void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) = 0; 208 virtual void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) = 0;
207 virtual void do_ProfileCall (ProfileCall* x) = 0; 209 virtual void do_ProfileCall (ProfileCall* x) = 0;
208 virtual void do_ProfileInvoke (ProfileInvoke* x) = 0; 210 virtual void do_ProfileInvoke (ProfileInvoke* x) = 0;
209 virtual void do_RuntimeCall (RuntimeCall* x) = 0; 211 virtual void do_RuntimeCall (RuntimeCall* x) = 0;
2271 // generic 2273 // generic
2272 virtual void input_values_do(ValueVisitor* f) { UnsafeObjectOp::input_values_do(f); 2274 virtual void input_values_do(ValueVisitor* f) { UnsafeObjectOp::input_values_do(f);
2273 f->visit(&_value); } 2275 f->visit(&_value); }
2274 }; 2276 };
2275 2277
2278 LEAF(UnsafeGetAndSetObject, UnsafeObjectOp)
2279 private:
2280 Value _value; // Value to be stored
2281 bool _is_add;
2282 public:
2283 UnsafeGetAndSetObject(BasicType basic_type, Value object, Value offset, Value value, bool is_add)
2284 : UnsafeObjectOp(basic_type, object, offset, false, false)
2285 , _value(value)
2286 , _is_add(is_add)
2287 {
2288 ASSERT_VALUES
2289 }
2290
2291 // accessors
2292 bool is_add() const { return _is_add; }
2293 Value value() { return _value; }
2294
2295 // generic
2296 virtual void input_values_do(ValueVisitor* f) { UnsafeObjectOp::input_values_do(f);
2297 f->visit(&_value); }
2298 };
2276 2299
2277 BASE(UnsafePrefetch, UnsafeObjectOp) 2300 BASE(UnsafePrefetch, UnsafeObjectOp)
2278 public: 2301 public:
2279 UnsafePrefetch(Value object, Value offset) 2302 UnsafePrefetch(Value object, Value offset)
2280 : UnsafeObjectOp(T_VOID, object, offset, false, false) 2303 : UnsafeObjectOp(T_VOID, object, offset, false, false)

mercurial