8332676: Remove unused BarrierSetAssembler::incr_allocated_bytes
Reviewed-by: tschatzl, kbarrett
This commit is contained in:
parent
c2180d141c
commit
1e5a2780d9
@ -269,21 +269,6 @@ void BarrierSetAssembler::tlab_allocate(MacroAssembler* masm, Register obj,
|
||||
// verify_tlab();
|
||||
}
|
||||
|
||||
void BarrierSetAssembler::incr_allocated_bytes(MacroAssembler* masm,
|
||||
Register var_size_in_bytes,
|
||||
int con_size_in_bytes,
|
||||
Register t1) {
|
||||
assert(t1->is_valid(), "need temp reg");
|
||||
|
||||
__ ldr(t1, Address(rthread, in_bytes(JavaThread::allocated_bytes_offset())));
|
||||
if (var_size_in_bytes->is_valid()) {
|
||||
__ add(t1, t1, var_size_in_bytes);
|
||||
} else {
|
||||
__ add(t1, t1, con_size_in_bytes);
|
||||
}
|
||||
__ str(t1, Address(rthread, in_bytes(JavaThread::allocated_bytes_offset())));
|
||||
}
|
||||
|
||||
static volatile uint32_t _patching_epoch = 0;
|
||||
|
||||
address BarrierSetAssembler::patching_epoch_addr() {
|
||||
|
@ -44,11 +44,6 @@ enum class NMethodPatchingType {
|
||||
};
|
||||
|
||||
class BarrierSetAssembler: public CHeapObj<mtGC> {
|
||||
private:
|
||||
void incr_allocated_bytes(MacroAssembler* masm,
|
||||
Register var_size_in_bytes, int con_size_in_bytes,
|
||||
Register t1 = noreg);
|
||||
|
||||
public:
|
||||
virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop,
|
||||
Register src, Register dst, Register count, RegSet saved_regs) {}
|
||||
|
@ -159,46 +159,6 @@ void BarrierSetAssembler::tlab_allocate(MacroAssembler* masm, Register obj, Regi
|
||||
__ str(obj_end, Address(Rthread, JavaThread::tlab_top_offset()));
|
||||
}
|
||||
|
||||
void BarrierSetAssembler::incr_allocated_bytes(MacroAssembler* masm, RegisterOrConstant size_in_bytes, Register tmp) {
|
||||
// Bump total bytes allocated by this thread
|
||||
Label done;
|
||||
|
||||
// Borrow the Rthread for alloc counter
|
||||
Register Ralloc = Rthread;
|
||||
__ add(Ralloc, Ralloc, in_bytes(JavaThread::allocated_bytes_offset()));
|
||||
__ ldr(tmp, Address(Ralloc));
|
||||
__ adds(tmp, tmp, size_in_bytes);
|
||||
__ str(tmp, Address(Ralloc), cc);
|
||||
__ b(done, cc);
|
||||
|
||||
// Increment the high word and store single-copy atomically (that is an unlikely scenario on typical embedded systems as it means >4GB has been allocated)
|
||||
// To do so ldrd/strd instructions used which require an even-odd pair of registers. Such a request could be difficult to satisfy by
|
||||
// allocating those registers on a higher level, therefore the routine is ready to allocate a pair itself.
|
||||
Register low, high;
|
||||
// Select ether R0/R1 or R2/R3
|
||||
|
||||
if (size_in_bytes.is_register() && (size_in_bytes.as_register() == R0 || size_in_bytes.as_register() == R1)) {
|
||||
low = R2;
|
||||
high = R3;
|
||||
} else {
|
||||
low = R0;
|
||||
high = R1;
|
||||
}
|
||||
__ push(RegisterSet(low, high));
|
||||
|
||||
__ ldrd(low, Address(Ralloc));
|
||||
__ adds(low, low, size_in_bytes);
|
||||
__ adc(high, high, 0);
|
||||
__ strd(low, Address(Ralloc));
|
||||
|
||||
__ pop(RegisterSet(low, high));
|
||||
|
||||
__ bind(done);
|
||||
|
||||
// Unborrow the Rthread
|
||||
__ sub(Rthread, Ralloc, in_bytes(JavaThread::allocated_bytes_offset()));
|
||||
}
|
||||
|
||||
void BarrierSetAssembler::nmethod_entry_barrier(MacroAssembler* masm) {
|
||||
|
||||
BarrierSetNMethod* bs_nm = BarrierSet::barrier_set()->barrier_set_nmethod();
|
||||
|
@ -40,12 +40,6 @@ enum class NMethodPatchingType {
|
||||
};
|
||||
|
||||
class BarrierSetAssembler: public CHeapObj<mtGC> {
|
||||
private:
|
||||
void incr_allocated_bytes(MacroAssembler* masm,
|
||||
RegisterOrConstant size_in_bytes,
|
||||
Register tmp
|
||||
);
|
||||
|
||||
public:
|
||||
virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop,
|
||||
Register addr, Register count, int callee_saved_regs) {}
|
||||
|
@ -183,7 +183,7 @@ void C1_MacroAssembler::try_allocate(
|
||||
Register obj, // result: pointer to object after successful allocation
|
||||
Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
|
||||
int con_size_in_bytes, // object size in bytes if known at compile time
|
||||
Register t1, // temp register, must be global register for incr_allocated_bytes
|
||||
Register t1, // temp register
|
||||
Register t2, // temp register
|
||||
Label& slow_case // continuation point if fast allocation fails
|
||||
) {
|
||||
|
@ -2209,9 +2209,6 @@ void MacroAssembler::tlab_allocate(
|
||||
std(new_top, in_bytes(JavaThread::tlab_top_offset()), R16_thread);
|
||||
//verify_tlab(); not implemented
|
||||
}
|
||||
void MacroAssembler::incr_allocated_bytes(RegisterOrConstant size_in_bytes, Register t1, Register t2) {
|
||||
unimplemented("incr_allocated_bytes");
|
||||
}
|
||||
|
||||
address MacroAssembler::emit_trampoline_stub(int destination_toc_offset,
|
||||
int insts_call_instruction_offset, Register Rtoc) {
|
||||
|
@ -626,7 +626,6 @@ class MacroAssembler: public Assembler {
|
||||
Register t1, // temp register
|
||||
Label& slow_case // continuation point if fast allocation fails
|
||||
);
|
||||
void incr_allocated_bytes(RegisterOrConstant size_in_bytes, Register t1, Register t2);
|
||||
|
||||
enum { trampoline_stub_size = 6 * 4 };
|
||||
address emit_trampoline_stub(int destination_toc_offset, int insts_call_instruction_offset, Register Rtoc = noreg);
|
||||
|
@ -211,21 +211,6 @@ void BarrierSetAssembler::tlab_allocate(MacroAssembler* masm, Register obj,
|
||||
}
|
||||
}
|
||||
|
||||
void BarrierSetAssembler::incr_allocated_bytes(MacroAssembler* masm,
|
||||
Register var_size_in_bytes,
|
||||
int con_size_in_bytes,
|
||||
Register tmp1) {
|
||||
assert(tmp1->is_valid(), "need temp reg");
|
||||
|
||||
__ ld(tmp1, Address(xthread, in_bytes(JavaThread::allocated_bytes_offset())));
|
||||
if (var_size_in_bytes->is_valid()) {
|
||||
__ add(tmp1, tmp1, var_size_in_bytes);
|
||||
} else {
|
||||
__ add(tmp1, tmp1, con_size_in_bytes);
|
||||
}
|
||||
__ sd(tmp1, Address(xthread, in_bytes(JavaThread::allocated_bytes_offset())));
|
||||
}
|
||||
|
||||
static volatile uint32_t _patching_epoch = 0;
|
||||
|
||||
address BarrierSetAssembler::patching_epoch_addr() {
|
||||
|
@ -45,11 +45,6 @@ enum class NMethodPatchingType {
|
||||
};
|
||||
|
||||
class BarrierSetAssembler: public CHeapObj<mtGC> {
|
||||
private:
|
||||
void incr_allocated_bytes(MacroAssembler* masm,
|
||||
Register var_size_in_bytes, int con_size_in_bytes,
|
||||
Register t1 = noreg);
|
||||
|
||||
public:
|
||||
virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop,
|
||||
Register src, Register dst, Register count, RegSet saved_regs) {}
|
||||
|
@ -164,7 +164,7 @@ void C1_MacroAssembler::try_allocate(
|
||||
Register obj, // result: Pointer to object after successful allocation.
|
||||
Register var_size_in_bytes, // Object size in bytes if unknown at compile time; invalid otherwise.
|
||||
int con_size_in_bytes, // Object size in bytes if known at compile time.
|
||||
Register t1, // Temp register: Must be global register for incr_allocated_bytes.
|
||||
Register t1, // Temp register.
|
||||
Label& slow_case // Continuation point if fast allocation fails.
|
||||
) {
|
||||
if (UseTLAB) {
|
||||
|
@ -352,36 +352,6 @@ void BarrierSetAssembler::tlab_allocate(MacroAssembler* masm,
|
||||
__ verify_tlab();
|
||||
}
|
||||
|
||||
void BarrierSetAssembler::incr_allocated_bytes(MacroAssembler* masm, Register thread,
|
||||
Register var_size_in_bytes,
|
||||
int con_size_in_bytes,
|
||||
Register t1) {
|
||||
if (!thread->is_valid()) {
|
||||
#ifdef _LP64
|
||||
thread = r15_thread;
|
||||
#else
|
||||
assert(t1->is_valid(), "need temp reg");
|
||||
thread = t1;
|
||||
__ get_thread(thread);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef _LP64
|
||||
if (var_size_in_bytes->is_valid()) {
|
||||
__ addq(Address(thread, in_bytes(JavaThread::allocated_bytes_offset())), var_size_in_bytes);
|
||||
} else {
|
||||
__ addq(Address(thread, in_bytes(JavaThread::allocated_bytes_offset())), con_size_in_bytes);
|
||||
}
|
||||
#else
|
||||
if (var_size_in_bytes->is_valid()) {
|
||||
__ addl(Address(thread, in_bytes(JavaThread::allocated_bytes_offset())), var_size_in_bytes);
|
||||
} else {
|
||||
__ addl(Address(thread, in_bytes(JavaThread::allocated_bytes_offset())), con_size_in_bytes);
|
||||
}
|
||||
__ adcl(Address(thread, in_bytes(JavaThread::allocated_bytes_offset())+4), 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef _LP64
|
||||
void BarrierSetAssembler::nmethod_entry_barrier(MacroAssembler* masm, Label* slow_path, Label* continuation) {
|
||||
BarrierSetNMethod* bs_nm = BarrierSet::barrier_set()->barrier_set_nmethod();
|
||||
|
@ -37,12 +37,6 @@ class Node;
|
||||
class InterpreterMacroAssembler;
|
||||
|
||||
class BarrierSetAssembler: public CHeapObj<mtGC> {
|
||||
private:
|
||||
void incr_allocated_bytes(MacroAssembler* masm, Register thread,
|
||||
Register var_size_in_bytes,
|
||||
int con_size_in_bytes,
|
||||
Register t1);
|
||||
|
||||
public:
|
||||
virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
|
||||
Register src, Register dst, Register count) {}
|
||||
|
@ -593,8 +593,6 @@ protected:
|
||||
static ByteSize tlab_top_offset() { return byte_offset_of(Thread, _tlab) + ThreadLocalAllocBuffer::top_offset(); }
|
||||
static ByteSize tlab_pf_top_offset() { return byte_offset_of(Thread, _tlab) + ThreadLocalAllocBuffer::pf_top_offset(); }
|
||||
|
||||
static ByteSize allocated_bytes_offset() { return byte_offset_of(Thread, _allocated_bytes); }
|
||||
|
||||
JFR_ONLY(DEFINE_THREAD_LOCAL_OFFSET_JFR;)
|
||||
|
||||
public:
|
||||
|
Loading…
x
Reference in New Issue
Block a user