Checkpoint

This commit is contained in:
Andrew Haley 2026-02-27 15:18:07 +01:00
parent 95db868d1c
commit 89c7e50fe5
4 changed files with 18 additions and 8 deletions

View File

@ -1219,6 +1219,8 @@ void LIR_Assembler::emit_alloc_array(LIR_OpAllocArray* op) {
}
void LIR_Assembler::increment_mdo(MacroAssembler *masm, Address dst, int32_t src) {
assert(masm->is_C1_MacroAssembler(), "must be");
#undef __
#define __ ((C1_MacroAssembler*)masm)->
int ratio_shift = exact_log2(ProfileCaptureRatio);

View File

@ -2830,7 +2830,7 @@ void MacroAssembler::decrementw(Register reg, int value)
{
if (value < 0) { incrementw(reg, -value); return; }
if (value == 0) { return; }
if (value < (1 << 12)) { subw(reg, reg, value); return; }
if (value < (1 << 24)) { subw(reg, reg, value); return; }
/* else */ {
guarantee(reg != rscratch2, "invalid dst for register decrement");
movw(rscratch2, (unsigned)value);
@ -2842,7 +2842,7 @@ void MacroAssembler::decrement(Register reg, int value)
{
if (value < 0) { increment(reg, -value); return; }
if (value == 0) { return; }
if (value < (1 << 12)) { sub(reg, reg, value); return; }
if (value < (1 << 24)) { sub(reg, reg, value); return; }
/* else */ {
assert(reg != rscratch2, "invalid dst for register decrement");
mov(rscratch2, (uint64_t)value);
@ -2854,7 +2854,7 @@ void MacroAssembler::decrementw(Address dst, int value)
{
assert(!dst.uses(rscratch1), "invalid dst for address decrement");
if (dst.getMode() == Address::literal) {
assert(abs(value) < (1 << 12), "invalid value and address mode combination");
assert(abs(value) < (1 << 24), "invalid value and address mode combination");
lea(rscratch2, dst);
dst = Address(rscratch2);
}
@ -2867,7 +2867,7 @@ void MacroAssembler::decrement(Address dst, int value)
{
assert(!dst.uses(rscratch1), "invalid address for decrement");
if (dst.getMode() == Address::literal) {
assert(abs(value) < (1 << 12), "invalid value and address mode combination");
assert(abs(value) < (1 << 24), "invalid value and address mode combination");
lea(rscratch2, dst);
dst = Address(rscratch2);
}
@ -2880,7 +2880,7 @@ void MacroAssembler::incrementw(Register reg, int value)
{
if (value < 0) { decrementw(reg, -value); return; }
if (value == 0) { return; }
if (value < (1 << 12)) { addw(reg, reg, value); return; }
if (value < (1 << 24)) { addw(reg, reg, value); return; }
/* else */ {
assert(reg != rscratch2, "invalid dst for register increment");
movw(rscratch2, (unsigned)value);
@ -2892,7 +2892,7 @@ void MacroAssembler::increment(Register reg, int value)
{
if (value < 0) { decrement(reg, -value); return; }
if (value == 0) { return; }
if (value < (1 << 12)) { add(reg, reg, value); return; }
if (value < (1 << 24)) { add(reg, reg, value); return; }
/* else */ {
assert(reg != rscratch2, "invalid dst for register increment");
movw(rscratch2, (unsigned)value);
@ -2906,7 +2906,7 @@ void MacroAssembler::incrementw(Address dst, int value, Register result)
assert(result->is_valid(), "must be");
assert_different_registers(result, rscratch2);
if (dst.getMode() == Address::literal) {
assert(abs(value) < (1 << 12), "invalid value and address mode combination");
assert(abs(value) < (1 << 24), "invalid value and address mode combination");
lea(rscratch2, dst);
dst = Address(rscratch2);
}
@ -2921,7 +2921,7 @@ void MacroAssembler::increment(Address dst, int value, Register result)
assert(result->is_valid(), "must be");
assert_different_registers(result, rscratch2);
if (dst.getMode() == Address::literal) {
assert(abs(value) < (1 << 12), "invalid value and address mode combination");
assert(abs(value) < (1 << 24), "invalid value and address mode combination");
lea(rscratch2, dst);
dst = Address(rscratch2);
}

View File

@ -218,6 +218,10 @@ class AbstractAssembler : public ResourceObj {
// Code emission & accessing
address addr_at(int pos) const { return code_section()->start() + pos; }
#ifdef ASSERT
virtual bool is_C1_MacroAssembler() { return false; }
#endif
protected:
// This routine is called with a label is used for an address.
// Labels and displacements truck in offsets, but target must return a PC.

View File

@ -45,6 +45,10 @@ class C1_MacroAssembler: public MacroAssembler {
void verify_stack_oop(int offset) PRODUCT_RETURN;
void verify_not_null_oop(Register r) PRODUCT_RETURN;
#ifdef ASSERT
virtual bool is_C1_MacroAssembler() { return true; }
#endif
#include CPU_HEADER(c1_MacroAssembler)
};