Edit

IABSD.fr/src/gnu/usr.bin/gcc

Branch :

  • Show log

    Commit

  • Author : miod
    Date : 2023-02-01 20:56:23
    Hash : 827d5b5a
    Message : Despite only testing the low-order bit of its operand, the blbc and blbs instructions always fetch a 32-bit word when operand is a memory address. This works unless the address is within the last 3 bytes of a page, with the next page being invalid, something which can happen with small malloc'ed structures (I'm looking at you, perl). Work around the problem by requiring a register operand in all cases; the register load will be a zero-extension load of the right width. This is my entry into the "fix a 30-year old bug" contest of 2023.