8296349: [aarch64] Avoid slicing Address::extend

Reviewed-by: aph, thartmann
This commit is contained in:
Kim Barrett 2022-11-11 08:34:43 +00:00
parent 7244eac9df
commit 12e76cbc72
2 changed files with 6 additions and 20 deletions

View File

@ -351,22 +351,11 @@ class Address {
int shift() const { return _shift; }
ext::operation op() const { return _op; }
};
class uxtw : public extend {
public:
uxtw(int shift = -1): extend(shift, 0b010, ext::uxtw) { }
};
class lsl : public extend {
public:
lsl(int shift = -1): extend(shift, 0b011, ext::uxtx) { }
};
class sxtw : public extend {
public:
sxtw(int shift = -1): extend(shift, 0b110, ext::sxtw) { }
};
class sxtx : public extend {
public:
sxtx(int shift = -1): extend(shift, 0b111, ext::sxtx) { }
};
static extend uxtw(int shift = -1) { return extend(shift, 0b010, ext::uxtw); }
static extend lsl(int shift = -1) { return extend(shift, 0b011, ext::uxtx); }
static extend sxtw(int shift = -1) { return extend(shift, 0b110, ext::sxtw); }
static extend sxtx(int shift = -1) { return extend(shift, 0b111, ext::sxtx); }
private:
Register _base;

View File

@ -66,7 +66,6 @@
#undef __
#define __ _masm->
#define TIMES_OOP Address::sxtw(exact_log2(UseCompressedOops ? 4 : 8))
#ifdef PRODUCT
#define BLOCK_COMMENT(str) /* nothing */
@ -619,8 +618,6 @@ class StubGenerator: public StubCodeGenerator {
return start;
}
void array_overlap_test(Label& L_no_overlap, Address::sxtw sf) { __ b(L_no_overlap); }
// Generate indices for iota vector.
address generate_iota_indices(const char *stub_name) {
__ align(CodeEntryAlignment);
@ -1808,7 +1805,7 @@ class StubGenerator: public StubCodeGenerator {
// caller guarantees that the arrays really are different
// otherwise, we would have to make conjoint checks
{ Label L;
array_overlap_test(L, TIMES_OOP);
__ b(L); // conjoint check not yet implemented
__ stop("checkcast_copy within a single array");
__ bind(L);
}