equal
deleted
inserted
replaced
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) |