equal
deleted
inserted
replaced
48 // __asm__ __volatile__ ("dmb" : : : "memory"); |
48 // __asm__ __volatile__ ("dmb" : : : "memory"); |
49 // __asm__ __volatile__ ("dsb" : : : "memory"); |
49 // __asm__ __volatile__ ("dsb" : : : "memory"); |
50 // |
50 // |
51 // inline void _OrderAccess_dsb() { |
51 // inline void _OrderAccess_dsb() { |
52 // volatile intptr_t dummy = 0; |
52 // volatile intptr_t dummy = 0; |
53 // if (os::is_MP()) { |
53 // __asm__ volatile ( |
54 // __asm__ volatile ( |
54 // "mcr p15, 0, %0, c7, c10, 4" |
55 // "mcr p15, 0, %0, c7, c10, 4" |
55 // : : "r" (dummy) : "memory"); |
56 // : : "r" (dummy) : "memory"); |
|
57 // } |
|
58 // } |
56 // } |
59 |
57 |
60 inline static void dmb_sy() { |
58 inline static void dmb_sy() { |
61 if (!os::is_MP()) { |
|
62 return; |
|
63 } |
|
64 #ifdef AARCH64 |
59 #ifdef AARCH64 |
65 __asm__ __volatile__ ("dmb sy" : : : "memory"); |
60 __asm__ __volatile__ ("dmb sy" : : : "memory"); |
66 #else |
61 #else |
67 if (VM_Version::arm_arch() >= 7) { |
62 if (VM_Version::arm_arch() >= 7) { |
68 #ifdef __thumb__ |
63 #ifdef __thumb__ |
80 } |
75 } |
81 #endif |
76 #endif |
82 } |
77 } |
83 |
78 |
84 inline static void dmb_st() { |
79 inline static void dmb_st() { |
85 if (!os::is_MP()) { |
|
86 return; |
|
87 } |
|
88 #ifdef AARCH64 |
80 #ifdef AARCH64 |
89 __asm__ __volatile__ ("dmb st" : : : "memory"); |
81 __asm__ __volatile__ ("dmb st" : : : "memory"); |
90 #else |
82 #else |
91 if (VM_Version::arm_arch() >= 7) { |
83 if (VM_Version::arm_arch() >= 7) { |
92 #ifdef __thumb__ |
84 #ifdef __thumb__ |
106 } |
98 } |
107 |
99 |
108 // Load-Load/Store barrier |
100 // Load-Load/Store barrier |
109 inline static void dmb_ld() { |
101 inline static void dmb_ld() { |
110 #ifdef AARCH64 |
102 #ifdef AARCH64 |
111 if (!os::is_MP()) { |
|
112 return; |
|
113 } |
|
114 __asm__ __volatile__ ("dmb ld" : : : "memory"); |
103 __asm__ __volatile__ ("dmb ld" : : : "memory"); |
115 #else |
104 #else |
116 dmb_sy(); |
105 dmb_sy(); |
117 #endif |
106 #endif |
118 } |
107 } |