Skip to content
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

(0.21.0) Fixed imm value for addis and lis #9948

Merged

Commits on Jun 19, 2020

  1. Fixed imm value for addis and lis

    addis and lis accept a signed 16 bit value as an immediate. They are passed
    into generateTrg1Src1ImmInstruction as signed 32 bit values. In some edge
    cases, the sign extension was not handled properly. In most cases this was
    due to the value being incremented after sign extension. In other cases it
    was due to an unnecessary mask clearing the upper 16 bits.
    
    One case in genInstanceOfOrCheckCastSuperClassTest was handled incorrectly.
    addis should be used instead of lis to reconstruct the 32 bit immediate value
    to be added.
    
    For cases where the TOC offset is unusually large, I put in an assert instead
    of generating instructions. The reasoning was TOC offsets of this size should
    never occur so those code paths would never be tested. Also TOC offsets of
    that size are likely an indication of a problem elsewhere.
    
    Closes: eclipse-openj9#9612
    Signed-off-by: jimmyk <jimmyk@ca.ibm.com>
    IBMJimmyk authored and gita-omr committed Jun 19, 2020
    Configuration menu
    Copy the full SHA
    3e13da4 View commit details
    Browse the repository at this point in the history