Skip to content

Commit 92a627a

Browse files
committed
Conditional compile CPU specific code
1 parent a7b396a commit 92a627a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+59
-24
lines changed

openjdk/CompileThirdPartyHeap.gmk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ JVM_LDFLAGS += '-Wl,-rpath,$$ORIGIN'
7171
FORCE:
7272

7373
TARGETS += $(LIB_MMTK)
74-
JVM_SRC_DIRS += $(MMTK_CPP_ROOT) $(MMTK_CPP_ROOT)/barriers
75-
JVM_CFLAGS += -std=c++14 -fpermissive -DINCLUDE_THIRD_PARTY_HEAP -DTHIRD_PARTY_HEAP_SRC=$(MMTK_CPP_ROOT)
74+
JVM_SRC_DIRS += $(MMTK_CPP_ROOT)/share $(MMTK_CPP_ROOT)/share/barriers $(MMTK_CPP_ROOT)/cpu/$(HOTSPOT_TARGET_CPU_ARCH)
75+
JVM_CFLAGS += -std=c++14 -fpermissive -DINCLUDE_THIRD_PARTY_HEAP -DTHIRD_PARTY_HEAP_SRC=$(MMTK_CPP_ROOT)/share -I$(MMTK_CPP_ROOT)/share -I$(MMTK_CPP_ROOT)/cpu/$(HOTSPOT_TARGET_CPU_ARCH)
7676
ifeq ($(GLOBAL_ALLOC_BIT), 1)
7777
JVM_CFLAGS += -DMMTK_ENABLE_GLOBAL_ALLOC_BIT
7878
endif

openjdk/mmtkBarrierSetAssembler_x86.cpp renamed to openjdk/cpu/x86/mmtkBarrierSetAssembler_x86.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
* questions.
2222
*
2323
*/
24-
#ifndef ZERO
2524
#include "precompiled.hpp"
2625
#include "asm/macroAssembler.inline.hpp"
2726
#include "interpreter/interp_masm.hpp"
@@ -32,6 +31,7 @@
3231
#include "runtime/sharedRuntime.hpp"
3332
#include "utilities/macros.hpp"
3433
#include "c1/c1_LIRAssembler.hpp"
34+
#include "c1/c1_MacroAssembler.hpp"
3535

3636
#define __ masm->
3737

@@ -196,4 +196,3 @@ void MMTkBarrierSetAssembler::generate_c1_write_barrier_stub_call(LIR_Assembler*
196196
}
197197

198198
#undef __
199-
#endif

openjdk/mmtkBarrierSetAssembler_x86.hpp renamed to openjdk/cpu/x86/mmtkBarrierSetAssembler_x86.hpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
#ifndef MMTK_OPENJDK_MMTK_BARRIER_SET_ASSEMBLER_X86_HPP
22
#define MMTK_OPENJDK_MMTK_BARRIER_SET_ASSEMBLER_X86_HPP
33

4-
#ifdef ZERO
5-
class MMTkBarrierSetAssembler;
6-
#else
74
#include "asm/macroAssembler.hpp"
85
#include "gc/shared/barrierSetAssembler.hpp"
96

@@ -33,8 +30,8 @@ class MMTkBarrierSetAssembler: public BarrierSetAssembler {
3330
virtual void generate_c1_write_barrier_runtime_stub(StubAssembler* sasm) const;
3431

3532
public:
36-
virtual void eden_allocate(MacroAssembler* masm, Register thread, Register obj, Register var_size_in_bytes, int con_size_in_bytes, Register t1, Label& slow_case) override;
37-
virtual void store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, Address dst, Register val, Register tmp1, Register tmp2, Register tmp3) override {
33+
virtual void eden_allocate(MacroAssembler* masm, Register thread, Register obj, Register var_size_in_bytes, int con_size_in_bytes, Register t1, Label& slow_case);
34+
virtual void store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, Address dst, Register val, Register tmp1, Register tmp2, Register tmp3) {
3835
if (type == T_OBJECT || type == T_ARRAY) object_reference_write_pre(masm, decorators, dst, val, tmp1, tmp2);
3936
BarrierSetAssembler::store_at(masm, decorators, type, dst, val, tmp1, tmp2, tmp3);
4037
if (type == T_OBJECT || type == T_ARRAY) object_reference_write_post(masm, decorators, dst, val, tmp1, tmp2);
@@ -43,5 +40,4 @@ class MMTkBarrierSetAssembler: public BarrierSetAssembler {
4340
/// Generate C1 write barrier slow-call stub
4441
static void generate_c1_write_barrier_stub_call(LIR_Assembler* ce, MMTkC1BarrierStub* stub);
4542
};
46-
#endif
4743
#endif // MMTK_OPENJDK_MMTK_BARRIER_SET_ASSEMBLER_X86_HPP
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#ifndef MMTK_OPENJDK_MMTK_BARRIER_SET_ASSEMBLER_ZERO_HPP
2+
#define MMTK_OPENJDK_MMTK_BARRIER_SET_ASSEMBLER_ZERO_HPP
3+
4+
class MMTkBarrierSetAssembler;
5+
#endif // MMTK_OPENJDK_MMTK_BARRIER_SET_ASSEMBLER_ZERO_HPP

openjdk/barriers/mmtkNoBarrier.hpp renamed to openjdk/share/barriers/mmtkNoBarrier.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
#define MMTK_OPENJDK_BARRIERS_MMTK_NO_BARRIER_HPP
33

44
#include "../mmtkBarrierSet.hpp"
5-
#include "../mmtkBarrierSetAssembler_x86.hpp"
5+
#include "utilities/macros.hpp"
6+
#include CPU_HEADER(mmtkBarrierSetAssembler)
67
#ifdef COMPILER1
78
#include "../mmtkBarrierSetC1.hpp"
89
class MMTkNoBarrierSetC1: public MMTkBarrierSetC1 {};

openjdk/barriers/mmtkObjectBarrier.cpp renamed to openjdk/share/barriers/mmtkObjectBarrier.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ void MMTkObjectBarrierSetRuntime::object_reference_write_post(oop src, oop* slot
1717
#endif
1818
}
1919

20+
#ifndef ZERO
2021
#define __ masm->
2122

2223
void MMTkObjectBarrierSetAssembler::object_reference_write_post(MacroAssembler* masm, DecoratorSet decorators, Address dst, Register val, Register tmp1, Register tmp2) const {
@@ -51,7 +52,11 @@ void MMTkObjectBarrierSetAssembler::object_reference_write_post(MacroAssembler*
5152

5253
__ movptr(c_rarg0, obj);
5354
__ lea(c_rarg1, dst);
54-
__ movptr(c_rarg2, val == noreg ? (int32_t) NULL_WORD : val);
55+
if (val == noreg) {
56+
__ movptr(c_rarg2, NULL_WORD);
57+
} else {
58+
__ movptr(c_rarg2, val);
59+
}
5560
__ call_VM_leaf_base(FN_ADDR(MMTkBarrierSetRuntime::object_reference_write_slow_call), 3);
5661

5762
__ bind(done);
@@ -77,6 +82,9 @@ void MMTkObjectBarrierSetAssembler::arraycopy_epilogue(MacroAssembler* masm, Dec
7782

7883
#undef __
7984

85+
#endif
86+
87+
#ifdef COMPILER1
8088
#ifdef ASSERT
8189
#define __ gen->lir(__FILE__, __LINE__)->
8290
#else
@@ -150,7 +158,9 @@ void MMTkObjectBarrierSetC1::object_reference_write_post(LIRAccess& access, LIR_
150158
}
151159

152160
#undef __
161+
#endif
153162

163+
#ifdef COMPILER2
154164
#define __ ideal.
155165

156166
void MMTkObjectBarrierSetC2::object_reference_write_post(GraphKit* kit, Node* src, Node* slot, Node* val) const {
@@ -183,3 +193,4 @@ void MMTkObjectBarrierSetC2::object_reference_write_post(GraphKit* kit, Node* sr
183193
}
184194

185195
#undef __
196+
#endif

openjdk/barriers/mmtkObjectBarrier.hpp renamed to openjdk/share/barriers/mmtkObjectBarrier.hpp

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,21 @@
33

44
#include "../mmtk.h"
55
#include "../mmtkBarrierSet.hpp"
6-
#include "../mmtkBarrierSetAssembler_x86.hpp"
6+
#ifndef ZERO
7+
#include "utilities/macros.hpp"
8+
#include CPU_HEADER(mmtkBarrierSetAssembler)
9+
#endif
10+
#ifdef COMPILER1
711
#include "../mmtkBarrierSetC1.hpp"
8-
#include "../mmtkBarrierSetC2.hpp"
912
#include "c1/c1_LIRAssembler.hpp"
1013
#include "c1/c1_MacroAssembler.hpp"
11-
#include "gc/shared/barrierSet.hpp"
14+
#endif
15+
#ifdef COMPILER2
16+
#include "../mmtkBarrierSetC2.hpp"
1217
#include "opto/callnode.hpp"
1318
#include "opto/idealKit.hpp"
19+
#endif
20+
#include "gc/shared/barrierSet.hpp"
1421

1522
#define SIDE_METADATA_WORST_CASE_RATIO_LOG 1
1623
#define LOG_BYTES_IN_CHUNK 22
@@ -27,13 +34,18 @@ class MMTkObjectBarrierSetRuntime: public MMTkBarrierSetRuntime {
2734
}
2835
};
2936

37+
#ifdef ZERO
38+
class MMTkObjectBarrierSetAssembler;
39+
#else
3040
class MMTkObjectBarrierSetAssembler: public MMTkBarrierSetAssembler {
3141
protected:
3242
virtual void object_reference_write_post(MacroAssembler* masm, DecoratorSet decorators, Address dst, Register val, Register tmp1, Register tmp2) const override;
3343
public:
3444
virtual void arraycopy_epilogue(MacroAssembler* masm, DecoratorSet decorators, BasicType type, Register src, Register dst, Register count) override;
3545
};
46+
#endif
3647

48+
#ifdef COMPILER1
3749
class MMTkObjectBarrierSetC1: public MMTkBarrierSetC1 {
3850
protected:
3951
virtual void object_reference_write_post(LIRAccess& access, LIR_Opr src, LIR_Opr slot, LIR_Opr new_val) const override;
@@ -42,11 +54,18 @@ class MMTkObjectBarrierSetC1: public MMTkBarrierSetC1 {
4254
return MMTkBarrierSetC1::resolve_address_in_register(access, resolve_in_register);
4355
}
4456
};
57+
#else
58+
class MMTkObjectBarrierSetC1;
59+
#endif
4560

61+
#ifdef COMPILER2
4662
class MMTkObjectBarrierSetC2: public MMTkBarrierSetC2 {
4763
protected:
4864
virtual void object_reference_write_post(GraphKit* kit, Node* src, Node* slot, Node* val) const override;
4965
};
66+
#else
67+
class MMTkObjectBarrierSetC2;
68+
#endif
5069

5170
struct MMTkObjectBarrier: MMTkBarrierImpl<
5271
MMTkObjectBarrierSetRuntime,
File renamed without changes.

openjdk/mmtkBarrierSet.cpp renamed to openjdk/share/mmtkBarrierSet.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@
2424

2525
#include "precompiled.hpp"
2626
#include "barriers/mmtkNoBarrier.hpp"
27-
// #include "barriers/mmtkObjectBarrier.hpp"
27+
#include "barriers/mmtkObjectBarrier.hpp"
2828
#include "mmtkBarrierSet.hpp"
29-
#include "mmtkBarrierSetAssembler_x86.hpp"
29+
#include "utilities/macros.hpp"
30+
#include CPU_HEADER(mmtkBarrierSetAssembler)
3031
#include "runtime/interfaceSupport.inline.hpp"
3132
#ifdef COMPILER1
3233
#include "mmtkBarrierSetC1.hpp"
@@ -77,9 +78,9 @@ MMTkBarrierBase* get_selected_barrier() {
7778
static MMTkBarrierBase* selected_barrier = NULL;
7879
if (selected_barrier) return selected_barrier;
7980
const char* barrier = mmtk_active_barrier();
80-
printf("mmtk_active_barrier %s\n", barrier);
81+
// printf("mmtk_active_barrier %s\n", barrier);
8182
if (strcmp(barrier, "NoBarrier") == 0) selected_barrier = new MMTkNoBarrier();
82-
// else if (strcmp(barrier, "ObjectBarrier") == 0) selected_barrier = new MMTkObjectBarrier();
83+
else if (strcmp(barrier, "ObjectBarrier") == 0) selected_barrier = new MMTkObjectBarrier();
8384
else guarantee(false, "Unimplemented");
8485
return selected_barrier;
8586
}

openjdk/mmtkBarrierSet.hpp renamed to openjdk/share/mmtkBarrierSet.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@
3030
#include "gc/shared/barrierSetConfig.hpp"
3131
#include "memory/memRegion.hpp"
3232
#include "mmtk.h"
33-
#include "mmtkBarrierSetAssembler_x86.hpp"
3433
#include "oops/access.hpp"
3534
#include "oops/accessBackend.hpp"
3635
#include "oops/oopsHierarchy.hpp"
3736
#include "utilities/fakeRttiSupport.hpp"
3837
#include "utilities/macros.hpp"
38+
#include CPU_HEADER(mmtkBarrierSetAssembler)
3939

4040
#define MMTK_ENABLE_ALLOCATION_FASTPATH true
4141
#define MMTK_ENABLE_BARRIER_FASTPATH true

0 commit comments

Comments
 (0)