Fix check for whether wide relocation offsets are needed on Power #3567
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously, there was special-case code in the collectModifier method on
TR::ExternalRelocation which was trying to handle relocations whose
targets were actually the address of the TR::Instruction rather than the
binary-encoded instruction. However, this is now being handled by
TR::BeforeBinaryEncodingExternalRelocation overriding the
getUpdateLocation method. As a result, this check was calculating the
wrong update location. The apply method was using the correct update
location and thus only calculation of whether wide offsets were needed
was affected by this problem.
This issue went unnoticed for a considerable length of time since the
pseudo-random nature of the incorrect update location would almost
always result in wide offsets being used. Using wide offsets when not
needed is unnecessary, but does not cause any correctness issues.
Signed-off-by: Ben Thomas ben@benthomas.ca