equal
deleted
inserted
replaced
27 |
27 |
28 #include "precompiled.hpp" |
28 #include "precompiled.hpp" |
29 #include "jvm.h" |
29 #include "jvm.h" |
30 #include "asm/assembler.hpp" |
30 #include "asm/assembler.hpp" |
31 #include "asm/assembler.inline.hpp" |
31 #include "asm/assembler.inline.hpp" |
|
32 #include "gc/shared/barrierSet.hpp" |
32 #include "gc/shared/cardTable.hpp" |
33 #include "gc/shared/cardTable.hpp" |
33 #include "gc/shared/barrierSetAssembler.hpp" |
34 #include "gc/shared/barrierSetAssembler.hpp" |
34 #include "gc/shared/cardTableBarrierSet.hpp" |
35 #include "gc/shared/cardTableBarrierSet.hpp" |
35 #include "interpreter/interpreter.hpp" |
36 #include "interpreter/interpreter.hpp" |
36 #include "compiler/disassembler.hpp" |
37 #include "compiler/disassembler.hpp" |
2090 #endif |
2091 #endif |
2091 } |
2092 } |
2092 #endif |
2093 #endif |
2093 |
2094 |
2094 void MacroAssembler::resolve_jobject(Register value, Register thread, Register tmp) { |
2095 void MacroAssembler::resolve_jobject(Register value, Register thread, Register tmp) { |
2095 BarrierSetAssembler *bs = Universe::heap()->barrier_set()->barrier_set_assembler(); |
2096 BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler(); |
2096 Label done, not_weak; |
2097 Label done, not_weak; |
2097 cbz(value, done); // Use NULL as-is. |
2098 cbz(value, done); // Use NULL as-is. |
2098 |
2099 |
2099 STATIC_ASSERT(JNIHandles::weak_tag_mask == 1u); |
2100 STATIC_ASSERT(JNIHandles::weak_tag_mask == 1u); |
2100 tbz(r0, 0, not_weak); // Test for jweak tag. |
2101 tbz(r0, 0, not_weak); // Test for jweak tag. |
4314 byte_offset = (unsigned long)dest.target() & 0xfff; |
4315 byte_offset = (unsigned long)dest.target() & 0xfff; |
4315 } |
4316 } |
4316 |
4317 |
4317 void MacroAssembler::load_byte_map_base(Register reg) { |
4318 void MacroAssembler::load_byte_map_base(Register reg) { |
4318 jbyte *byte_map_base = |
4319 jbyte *byte_map_base = |
4319 ((CardTableBarrierSet*)(Universe::heap()->barrier_set()))->card_table()->byte_map_base(); |
4320 ((CardTableBarrierSet*)(BarrierSet::barrier_set()))->card_table()->byte_map_base(); |
4320 |
4321 |
4321 if (is_valid_AArch64_address((address)byte_map_base)) { |
4322 if (is_valid_AArch64_address((address)byte_map_base)) { |
4322 // Strictly speaking the byte_map_base isn't an address at all, |
4323 // Strictly speaking the byte_map_base isn't an address at all, |
4323 // and it might even be negative. |
4324 // and it might even be negative. |
4324 unsigned long offset; |
4325 unsigned long offset; |