Skip to content
  • jeremyd2019's avatar
    4745338a
    [win32] fix arm64 instruction decoding · 4745338a
    jeremyd2019 authored
    Two minor fixes to arm64 instruction decoding when looking for __pioinfo:
    1. add_mask was shifted by one bit, it was intended to be 0x7f800000.  However, since the mask was already excluding matching the 'sh' bit, and since the purpose of the add following the adrp is to add in the lower 12 bits, I opted to set the mask to 0x7fc00000 and simply remove the handling for the 12 bit shift option which is now required to be disabled in order to match.
    2. adrp's immediate was supposed to be sign extended.  So far, I have not seen cases where the global variable ends up before the code in memory, but it's a possibility, so handle the sign extension.
    4745338a
    [win32] fix arm64 instruction decoding
    jeremyd2019 authored
    Two minor fixes to arm64 instruction decoding when looking for __pioinfo:
    1. add_mask was shifted by one bit, it was intended to be 0x7f800000.  However, since the mask was already excluding matching the 'sh' bit, and since the purpose of the add following the adrp is to add in the lower 12 bits, I opted to set the mask to 0x7fc00000 and simply remove the handling for the 12 bit shift option which is now required to be disabled in order to match.
    2. adrp's immediate was supposed to be sign extended.  So far, I have not seen cases where the global variable ends up before the code in memory, but it's a possibility, so handle the sign extension.
Loading