equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
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 UnsafeGetAndSetObject; |
106 class UnsafePrefetch; |
|
107 class UnsafePrefetchRead; |
|
108 class UnsafePrefetchWrite; |
|
109 class ProfileCall; |
106 class ProfileCall; |
110 class ProfileReturnType; |
107 class ProfileReturnType; |
111 class ProfileInvoke; |
108 class ProfileInvoke; |
112 class RuntimeCall; |
109 class RuntimeCall; |
113 class MemBar; |
110 class MemBar; |
207 virtual void do_UnsafeGetRaw (UnsafeGetRaw* x) = 0; |
204 virtual void do_UnsafeGetRaw (UnsafeGetRaw* x) = 0; |
208 virtual void do_UnsafePutRaw (UnsafePutRaw* x) = 0; |
205 virtual void do_UnsafePutRaw (UnsafePutRaw* x) = 0; |
209 virtual void do_UnsafeGetObject(UnsafeGetObject* x) = 0; |
206 virtual void do_UnsafeGetObject(UnsafeGetObject* x) = 0; |
210 virtual void do_UnsafePutObject(UnsafePutObject* x) = 0; |
207 virtual void do_UnsafePutObject(UnsafePutObject* x) = 0; |
211 virtual void do_UnsafeGetAndSetObject(UnsafeGetAndSetObject* x) = 0; |
208 virtual void do_UnsafeGetAndSetObject(UnsafeGetAndSetObject* x) = 0; |
212 virtual void do_UnsafePrefetchRead (UnsafePrefetchRead* x) = 0; |
|
213 virtual void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) = 0; |
|
214 virtual void do_ProfileCall (ProfileCall* x) = 0; |
209 virtual void do_ProfileCall (ProfileCall* x) = 0; |
215 virtual void do_ProfileReturnType (ProfileReturnType* x) = 0; |
210 virtual void do_ProfileReturnType (ProfileReturnType* x) = 0; |
216 virtual void do_ProfileInvoke (ProfileInvoke* x) = 0; |
211 virtual void do_ProfileInvoke (ProfileInvoke* x) = 0; |
217 virtual void do_RuntimeCall (RuntimeCall* x) = 0; |
212 virtual void do_RuntimeCall (RuntimeCall* x) = 0; |
218 virtual void do_MemBar (MemBar* x) = 0; |
213 virtual void do_MemBar (MemBar* x) = 0; |
2440 // generic |
2435 // generic |
2441 virtual void input_values_do(ValueVisitor* f) { UnsafeObjectOp::input_values_do(f); |
2436 virtual void input_values_do(ValueVisitor* f) { UnsafeObjectOp::input_values_do(f); |
2442 f->visit(&_value); } |
2437 f->visit(&_value); } |
2443 }; |
2438 }; |
2444 |
2439 |
2445 BASE(UnsafePrefetch, UnsafeObjectOp) |
|
2446 public: |
|
2447 UnsafePrefetch(Value object, Value offset) |
|
2448 : UnsafeObjectOp(T_VOID, object, offset, false, false) |
|
2449 { |
|
2450 } |
|
2451 }; |
|
2452 |
|
2453 |
|
2454 LEAF(UnsafePrefetchRead, UnsafePrefetch) |
|
2455 public: |
|
2456 UnsafePrefetchRead(Value object, Value offset) |
|
2457 : UnsafePrefetch(object, offset) |
|
2458 { |
|
2459 ASSERT_VALUES |
|
2460 } |
|
2461 }; |
|
2462 |
|
2463 |
|
2464 LEAF(UnsafePrefetchWrite, UnsafePrefetch) |
|
2465 public: |
|
2466 UnsafePrefetchWrite(Value object, Value offset) |
|
2467 : UnsafePrefetch(object, offset) |
|
2468 { |
|
2469 ASSERT_VALUES |
|
2470 } |
|
2471 }; |
|
2472 |
|
2473 LEAF(ProfileCall, Instruction) |
2440 LEAF(ProfileCall, Instruction) |
2474 private: |
2441 private: |
2475 ciMethod* _method; |
2442 ciMethod* _method; |
2476 int _bci_of_invoke; |
2443 int _bci_of_invoke; |
2477 ciMethod* _callee; // the method that is called at the given bci |
2444 ciMethod* _callee; // the method that is called at the given bci |