Skip to content

8298913: Add override qualifiers to Relocation classes #11716

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 58 additions & 58 deletions src/hotspot/share/code/relocInfo.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -904,12 +904,12 @@ class DataRelocation : public Relocation {
public:
DataRelocation(relocInfo::relocType type) : Relocation(type) {}

bool is_data() { return true; }
bool is_data() override { return true; }

// both target and offset must be computed somehow from relocation data
virtual int offset() { return 0; }
address value() = 0;
void set_value(address x) { set_value(x, offset()); }
address value() override = 0;
void set_value(address x) override { set_value(x, offset()); }
void set_value(address x, intptr_t o) {
if (addr_in_const())
const_set_data_value(x);
Expand Down Expand Up @@ -946,7 +946,7 @@ class post_call_nop_Relocation : public Relocation {
return RelocationHolder::construct<post_call_nop_Relocation>();
}

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;
};

class entry_guard_Relocation : public Relocation {
Expand All @@ -959,7 +959,7 @@ class entry_guard_Relocation : public Relocation {
return RelocationHolder::construct<entry_guard_Relocation>();
}

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;
};

// A CallRelocation always points at a call instruction.
Expand All @@ -968,14 +968,14 @@ class CallRelocation : public Relocation {
public:
CallRelocation(relocInfo::relocType type) : Relocation(type) { }

bool is_call() { return true; }
bool is_call() override { return true; }

address destination() { return pd_call_destination(); }
void set_destination(address x); // pd_set_call_destination

void fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest);
address value() { return destination(); }
void set_value(address x) { set_destination(x); }
void fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest) override;
address value() override { return destination(); }
void set_value(address x) override { set_destination(x); }
};

class oop_Relocation : public DataRelocation {
Expand All @@ -997,7 +997,7 @@ class oop_Relocation : public DataRelocation {
return RelocationHolder::construct<oop_Relocation>(oop_index, offset);
}

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;

private:
jint _oop_index; // if > 0, index into CodeBlob::oop_at
Expand All @@ -1011,17 +1011,17 @@ class oop_Relocation : public DataRelocation {

public:
int oop_index() { return _oop_index; }
int offset() { return _offset; }
int offset() override { return _offset; }

// data is packed in "2_ints" format: [i o] or [Ii Oo]
void pack_data_to(CodeSection* dest);
void unpack_data();
void pack_data_to(CodeSection* dest) override;
void unpack_data() override;

void fix_oop_relocation(); // reasserts oop value

void verify_oop_relocation();

address value() { return cast_from_oop<address>(*oop_addr()); }
address value() override { return cast_from_oop<address>(*oop_addr()); }

bool oop_is_immediate() { return oop_index() == 0; }

Expand All @@ -1048,7 +1048,7 @@ class metadata_Relocation : public DataRelocation {
return RelocationHolder::construct<metadata_Relocation>(metadata_index, offset);
}

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;

private:
jint _metadata_index; // if > 0, index into nmethod::metadata_at
Expand All @@ -1067,15 +1067,15 @@ class metadata_Relocation : public DataRelocation {

public:
int metadata_index() { return _metadata_index; }
int offset() { return _offset; }
int offset() override { return _offset; }

// data is packed in "2_ints" format: [i o] or [Ii Oo]
void pack_data_to(CodeSection* dest);
void unpack_data();
void pack_data_to(CodeSection* dest) override;
void unpack_data() override;

void fix_metadata_relocation(); // reasserts metadata value

address value() { return (address) *metadata_addr(); }
address value() override { return (address) *metadata_addr(); }

bool metadata_is_immediate() { return metadata_index() == 0; }

Expand All @@ -1095,7 +1095,7 @@ class virtual_call_Relocation : public CallRelocation {
return RelocationHolder::construct<virtual_call_Relocation>(cached_value, method_index);
}

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;

private:
address _cached_value; // location of set-value instruction
Expand All @@ -1121,10 +1121,10 @@ class virtual_call_Relocation : public CallRelocation {
// oop_limit is set to 0 if the limit falls somewhere within the call.
// When unpacking, a zero oop_limit is taken to refer to the end of the call.
// (This has the effect of bringing in the call's delay slot on SPARC.)
void pack_data_to(CodeSection* dest);
void unpack_data();
void pack_data_to(CodeSection* dest) override;
void unpack_data() override;

bool clear_inline_cache();
bool clear_inline_cache() override;
};


Expand All @@ -1134,7 +1134,7 @@ class opt_virtual_call_Relocation : public CallRelocation {
return RelocationHolder::construct<opt_virtual_call_Relocation>(method_index);
}

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;

private:
jint _method_index; // resolved method for a Java call
Expand All @@ -1150,10 +1150,10 @@ class opt_virtual_call_Relocation : public CallRelocation {
int method_index() { return _method_index; }
Method* method_value();

void pack_data_to(CodeSection* dest);
void unpack_data();
void pack_data_to(CodeSection* dest) override;
void unpack_data() override;

bool clear_inline_cache();
bool clear_inline_cache() override;

// find the matching static_stub
address static_stub();
Expand All @@ -1166,7 +1166,7 @@ class static_call_Relocation : public CallRelocation {
return RelocationHolder::construct<static_call_Relocation>(method_index);
}

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;

private:
jint _method_index; // resolved method for a Java call
Expand All @@ -1182,10 +1182,10 @@ class static_call_Relocation : public CallRelocation {
int method_index() { return _method_index; }
Method* method_value();

void pack_data_to(CodeSection* dest);
void unpack_data();
void pack_data_to(CodeSection* dest) override;
void unpack_data() override;

bool clear_inline_cache();
bool clear_inline_cache() override;

// find the matching static_stub
address static_stub();
Expand All @@ -1197,7 +1197,7 @@ class static_stub_Relocation : public Relocation {
return RelocationHolder::construct<static_stub_Relocation>(static_call);
}

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;

private:
address _static_call; // location of corresponding static_call
Expand All @@ -1210,13 +1210,13 @@ class static_stub_Relocation : public Relocation {
static_stub_Relocation() : Relocation(relocInfo::static_stub_type) { }

public:
bool clear_inline_cache();
bool clear_inline_cache() override;

address static_call() { return _static_call; }

// data is packed as a scaled offset in "1_int" format: [c] or [Cc]
void pack_data_to(CodeSection* dest);
void unpack_data();
void pack_data_to(CodeSection* dest) override;
void unpack_data() override;
};

class runtime_call_Relocation : public CallRelocation {
Expand All @@ -1226,7 +1226,7 @@ class runtime_call_Relocation : public CallRelocation {
return RelocationHolder::construct<runtime_call_Relocation>();
}

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;

private:
friend class RelocationHolder;
Expand All @@ -1240,7 +1240,7 @@ class runtime_call_w_cp_Relocation : public CallRelocation {
return RelocationHolder::construct<runtime_call_w_cp_Relocation>();
}

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;

private:
friend class RelocationHolder;
Expand All @@ -1260,8 +1260,8 @@ class runtime_call_w_cp_Relocation : public CallRelocation {
public:
void set_constant_pool_offset(int offset) { _offset = offset; }
int get_constant_pool_offset() { return _offset; }
void pack_data_to(CodeSection * dest);
void unpack_data();
void pack_data_to(CodeSection * dest) override;
void unpack_data() override;
};

// Trampoline Relocations.
Expand All @@ -1276,7 +1276,7 @@ class trampoline_stub_Relocation : public Relocation {
return RelocationHolder::construct<trampoline_stub_Relocation>(static_call);
}

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;

private:
address _owner; // Address of the NativeCall that owns the trampoline.
Expand All @@ -1293,8 +1293,8 @@ class trampoline_stub_Relocation : public Relocation {
// Return the address of the NativeCall that owns the trampoline.
address owner() { return _owner; }

void pack_data_to(CodeSection * dest);
void unpack_data();
void pack_data_to(CodeSection * dest) override;
void unpack_data() override;

// Find the trampoline stub for a call.
static address get_trampoline_for(address call, nmethod* code);
Expand All @@ -1313,7 +1313,7 @@ class external_word_Relocation : public DataRelocation {
return RelocationHolder::construct<external_word_Relocation>(nullptr);
}

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;

// Some address looking values aren't safe to treat as relocations
// and should just be treated as constants.
Expand All @@ -1337,12 +1337,12 @@ class external_word_Relocation : public DataRelocation {
// to short indexes, if they are pre-registered by the stub mechanism.
// If the "a" value is 0 (i.e., _target is NULL), the address is stored
// in the code stream. See external_word_Relocation::target().
void pack_data_to(CodeSection* dest);
void unpack_data();
void pack_data_to(CodeSection* dest) override;
void unpack_data() override;

void fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest);
void fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest) override;
address target(); // if _target==NULL, fetch addr from code stream
address value() { return target(); }
address value() override { return target(); }
};

class internal_word_Relocation : public DataRelocation {
Expand All @@ -1358,7 +1358,7 @@ class internal_word_Relocation : public DataRelocation {
return RelocationHolder::construct<internal_word_Relocation>(nullptr);
}

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;

// default section -1 means self-relative
internal_word_Relocation(address target, int section = -1,
Expand All @@ -1381,13 +1381,13 @@ class internal_word_Relocation : public DataRelocation {
// If the "o" value is 0 (i.e., _target is NULL), the offset is stored
// in the code stream. See internal_word_Relocation::target().
// If _section is not -1, it is appended to the low bits of the offset.
void pack_data_to(CodeSection* dest);
void unpack_data();
void pack_data_to(CodeSection* dest) override;
void unpack_data() override;

void fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest);
void fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest) override;
address target(); // if _target==NULL, fetch addr from code stream
int section() { return _section; }
address value() { return target(); }
address value() override { return target(); }
};

class section_word_Relocation : public internal_word_Relocation {
Expand All @@ -1396,7 +1396,7 @@ class section_word_Relocation : public internal_word_Relocation {
return RelocationHolder::construct<section_word_Relocation>(target, section);
}

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;

section_word_Relocation(address target, int section)
: internal_word_Relocation(target, section, relocInfo::section_word_type) {
Expand All @@ -1405,7 +1405,7 @@ class section_word_Relocation : public internal_word_Relocation {
}

//void pack_data_to -- inherited
void unpack_data();
void unpack_data() override;

private:
friend class RelocationHolder;
Expand All @@ -1414,19 +1414,19 @@ class section_word_Relocation : public internal_word_Relocation {


class poll_Relocation : public Relocation {
bool is_data() { return true; }
void fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest);
bool is_data() override { return true; }
void fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest) override;
public:
poll_Relocation(relocInfo::relocType type = relocInfo::poll_type) : Relocation(type) { }

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;
};

class poll_return_Relocation : public poll_Relocation {
public:
poll_return_Relocation() : poll_Relocation(relocInfo::relocInfo::poll_return_type) { }

void copy_into(RelocationHolder& holder) const;
void copy_into(RelocationHolder& holder) const override;
};

// We know all the xxx_Relocation classes, so now we can define these:
Expand Down