@@ -64,8 +64,7 @@ namespace AccessInternal {
64
64
BARRIER_ATOMIC_XCHG_AT,
65
65
BARRIER_ARRAYCOPY,
66
66
BARRIER_CLONE,
67
- BARRIER_RESOLVE,
68
- BARRIER_EQUALS
67
+ BARRIER_RESOLVE
69
68
};
70
69
71
70
template <DecoratorSet decorators, typename T>
@@ -116,7 +115,6 @@ namespace AccessInternal {
116
115
size_t length);
117
116
typedef void (*clone_func_t )(oop src, oop dst, size_t size);
118
117
typedef oop (*resolve_func_t )(oop obj);
119
- typedef bool (*equals_func_t )(oop o1, oop o2);
120
118
};
121
119
122
120
template <DecoratorSet decorators>
@@ -144,7 +142,6 @@ namespace AccessInternal {
144
142
ACCESS_GENERATE_ACCESS_FUNCTION (BARRIER_ARRAYCOPY, arraycopy_func_t );
145
143
ACCESS_GENERATE_ACCESS_FUNCTION (BARRIER_CLONE, clone_func_t );
146
144
ACCESS_GENERATE_ACCESS_FUNCTION (BARRIER_RESOLVE, resolve_func_t );
147
- ACCESS_GENERATE_ACCESS_FUNCTION (BARRIER_EQUALS, equals_func_t );
148
145
#undef ACCESS_GENERATE_ACCESS_FUNCTION
149
146
150
147
template <DecoratorSet decorators, typename T, BarrierType barrier_type>
@@ -410,8 +407,6 @@ class RawAccessBarrier: public AllStatic {
410
407
static void clone (oop src, oop dst, size_t size);
411
408
412
409
static oop resolve (oop obj) { return obj; }
413
-
414
- static bool equals (oop o1, oop o2) { return (void *)o1 == (void *)o2; }
415
410
};
416
411
417
412
// Below is the implementation of the first 4 steps of the template pipeline:
@@ -605,18 +600,6 @@ namespace AccessInternal {
605
600
}
606
601
};
607
602
608
- template <DecoratorSet decorators, typename T>
609
- struct RuntimeDispatch <decorators, T, BARRIER_EQUALS>: AllStatic {
610
- typedef typename AccessFunction<decorators, T, BARRIER_EQUALS>::type func_t ;
611
- static func_t _equals_func;
612
-
613
- static bool equals_init (oop o1, oop o2);
614
-
615
- static inline bool equals (oop o1, oop o2) {
616
- return _equals_func (o1, o2);
617
- }
618
- };
619
-
620
603
// Initialize the function pointers to point to the resolving function.
621
604
template <DecoratorSet decorators, typename T>
622
605
typename AccessFunction<decorators, T, BARRIER_STORE>::type
@@ -662,10 +645,6 @@ namespace AccessInternal {
662
645
typename AccessFunction<decorators, T, BARRIER_RESOLVE>::type
663
646
RuntimeDispatch<decorators, T, BARRIER_RESOLVE>::_resolve_func = &resolve_init;
664
647
665
- template <DecoratorSet decorators, typename T>
666
- typename AccessFunction<decorators, T, BARRIER_EQUALS>::type
667
- RuntimeDispatch<decorators, T, BARRIER_EQUALS>::_equals_func = &equals_init;
668
-
669
648
// Step 3: Pre-runtime dispatching.
670
649
// The PreRuntimeDispatch class is responsible for filtering the barrier strength
671
650
// decorators. That is, for AS_RAW, it hardwires the accesses without a runtime
@@ -996,21 +975,6 @@ namespace AccessInternal {
996
975
resolve (oop obj) {
997
976
return RuntimeDispatch<decorators, oop, BARRIER_RESOLVE>::resolve (obj);
998
977
}
999
-
1000
- template <DecoratorSet decorators>
1001
- inline static typename EnableIf<
1002
- HasDecorator<decorators, AS_RAW>::value || HasDecorator<decorators, INTERNAL_BT_TO_SPACE_INVARIANT>::value, bool >::type
1003
- equals (oop o1, oop o2) {
1004
- typedef RawAccessBarrier<decorators & RAW_DECORATOR_MASK> Raw;
1005
- return Raw::equals (o1, o2);
1006
- }
1007
-
1008
- template <DecoratorSet decorators>
1009
- inline static typename EnableIf<
1010
- !HasDecorator<decorators, AS_RAW>::value && !HasDecorator<decorators, INTERNAL_BT_TO_SPACE_INVARIANT>::value, bool >::type
1011
- equals (oop o1, oop o2) {
1012
- return RuntimeDispatch<decorators, oop, BARRIER_EQUALS>::equals (o1, o2);
1013
- }
1014
978
};
1015
979
1016
980
// Step 2: Reduce types.
@@ -1309,12 +1273,6 @@ namespace AccessInternal {
1309
1273
return PreRuntimeDispatch::resolve<expanded_decorators>(obj);
1310
1274
}
1311
1275
1312
- template <DecoratorSet decorators>
1313
- inline bool equals (oop o1, oop o2) {
1314
- const DecoratorSet expanded_decorators = DecoratorFixup<decorators>::value;
1315
- return PreRuntimeDispatch::equals<expanded_decorators>(o1, o2);
1316
- }
1317
-
1318
1276
// Infer the type that should be returned from an Access::oop_load.
1319
1277
template <typename P, DecoratorSet decorators>
1320
1278
class OopLoadProxy : public StackObj {
0 commit comments