mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-03 04:30:06 +00:00
Checkpoint
This commit is contained in:
parent
95db868d1c
commit
89c7e50fe5
@ -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);
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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)
|
||||
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user