equal
deleted
inserted
replaced
32 #include "oops/oop.inline.hpp" |
32 #include "oops/oop.inline.hpp" |
33 #include "prims/methodHandles.hpp" |
33 #include "prims/methodHandles.hpp" |
34 #include "runtime/sharedRuntime.hpp" |
34 #include "runtime/sharedRuntime.hpp" |
35 #include "runtime/stubRoutines.hpp" |
35 #include "runtime/stubRoutines.hpp" |
36 #include "runtime/synchronizer.hpp" |
36 #include "runtime/synchronizer.hpp" |
|
37 #include "utilities/macros.hpp" |
37 |
38 |
38 #ifndef CC_INTERP |
39 #ifndef CC_INTERP |
39 #define __ _masm-> |
40 #define __ _masm-> |
40 |
41 |
41 // Misc helpers |
42 // Misc helpers |
51 BarrierSet::Name barrier, |
52 BarrierSet::Name barrier, |
52 bool precise) { |
53 bool precise) { |
53 assert(tmp != val && tmp != base && tmp != index, "register collision"); |
54 assert(tmp != val && tmp != base && tmp != index, "register collision"); |
54 assert(index == noreg || offset == 0, "only one offset"); |
55 assert(index == noreg || offset == 0, "only one offset"); |
55 switch (barrier) { |
56 switch (barrier) { |
56 #ifndef SERIALGC |
57 #if INCLUDE_ALL_GCS |
57 case BarrierSet::G1SATBCT: |
58 case BarrierSet::G1SATBCT: |
58 case BarrierSet::G1SATBCTLogging: |
59 case BarrierSet::G1SATBCTLogging: |
59 { |
60 { |
60 // Load and record the previous value. |
61 // Load and record the previous value. |
61 __ g1_write_barrier_pre(base, index, offset, |
62 __ g1_write_barrier_pre(base, index, offset, |
80 } |
81 } |
81 __ g1_write_barrier_post(base, val, tmp); |
82 __ g1_write_barrier_post(base, val, tmp); |
82 } |
83 } |
83 } |
84 } |
84 break; |
85 break; |
85 #endif // SERIALGC |
86 #endif // INCLUDE_ALL_GCS |
86 case BarrierSet::CardTableModRef: |
87 case BarrierSet::CardTableModRef: |
87 case BarrierSet::CardTableExtension: |
88 case BarrierSet::CardTableExtension: |
88 { |
89 { |
89 if (index == noreg ) { |
90 if (index == noreg ) { |
90 assert(Assembler::is_simm13(offset), "fix this code"); |
91 assert(Assembler::is_simm13(offset), "fix this code"); |